Thema Datum  Von Nutzer Rating
Antwort
25.05.2016 21:24:07 Gast55953
NotSolved
Blau Daten splitten und Bereiche aufteilen
25.05.2016 23:11:37 Gast36927
*****
Solved
26.05.2016 21:15:31 Gast38942
Solved

Ansicht des Beitrags:
Von:
Gast36927
Datum:
25.05.2016 23:11:37
Views:
713
Rating: Antwort:
 Nein
Thema:
Daten splitten und Bereiche aufteilen

Moin! War ein lustiger Spaß zu später Stunde. Also hier mal mein Ergebnis. Hat in den Testläufen geklappt. ggf.als Funktion anlegen und dann immer die Zeile übergeben. Vg

Sub ergänzen()
Dim text As String
Dim temp, temp2, temp3, neu
Dim buchstaben As Long
Dim bst As String
Dim i As Long, j As Long, k As Long


'hier zeilenweise an text übergeben
text = "no untagged A3,A7,A9-A10,A14,A16,A18,B5,B19-B20"

'erstmal nach , trennen
temp = Split(text, ",")

'jetzt alle Abschnitte durchgehen
For i = 0 To UBound(temp)
    'noch die Leerzeichen weg
    temp2 = Split(temp(i), " ")
    'dafür brauchen wir nur noch den letzten Teil nehmen, da gibt keine Leerzeichen
    If InStr(1, temp2(UBound(temp2)), "-") <> 0 Then
        
        'jetzt sind wir in der Zelle mit dem -
        temp3 = Split(temp2(UBound(temp2)), "-")
        'da gibt es nur 2
        'länger der Buchstaben
        buchstaben = 0
        For j = 1 To Len(temp3(0))
            If Not IsNumeric(Mid(temp3(0), j, 1)) Then buchstaben = buchstaben + 1
        Next j
        'nochmal prüfen, ob wir auch richtig sind undkeine Buchstaben mit haben
        If IsNumeric(Right(temp3(0), Len(temp3(0)) - buchstaben)) And IsNumeric(Right(temp3(1), Len(temp3(1)) - buchstaben)) Then
            bst = ""
            bst = Left(temp3(0), buchstaben)
            neu = ""
            'jetzt neu Zusammenstellen, es wird nicht geprüft, ob die zweite Zahl grölßer ist !!!!!!!!
            For k = Right(temp3(0), Len(temp3(0)) - buchstaben) To Right(temp3(1), Len(temp3(1)) - buchstaben)
                neu = neu & bst & k & ","
            Next k
            'das letze , noch weg
            temp2(UBound(temp2)) = Left(neu, Len(neu) - 1)
        End If
    'mit den Leerzeichen von vorher wieder zusammen fügen - sonst fehlt der tagged teil
    temp(i) = Join(temp2, " ")
    End If
Next i
'alles wieder zusammenfügen mit ,
text = Join(temp, ",")

'fertig
MsgBox text
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
25.05.2016 21:24:07 Gast55953
NotSolved
Blau Daten splitten und Bereiche aufteilen
25.05.2016 23:11:37 Gast36927
*****
Solved
26.05.2016 21:15:31 Gast38942
Solved