HalloLeute,
ich hoffe ihr könnt mir weiterhelfen.
Ich möchte dein Zelleninhalt einer Zelle trennen und in verschiedene Zellen schreiben.
Also Zelle1:"Wert1 Wert2 .... WertN" zu Zelle1:"Wert1" Zelle2:"Wert2" ZelleN:"WertN"
Ich habe im Forum schon folgenden VBA-Code gefunden (Quelle):
Nun dachte ich mir, dass ich einfach eine "goto" Anweisung am ende einbaue und Spalte1, Spalte2, Zielspalte1 und Zielspalte2 plus 1 rechne. Also das er den Inhalt aus B2 nun bearbeitet und nach einem Leerzeichen den Rest in C2 schreibt.
Leider muss da ein großer Denkfehler drin sein. Das Programm stürzt komplett ab.
So sieht das bei mir aus:
Kann mir bitte jemand sagen was ich falsch mache?
Danke!
LG FBM
ich hoffe ihr könnt mir weiterhelfen.
Ich möchte dein Zelleninhalt einer Zelle trennen und in verschiedene Zellen schreiben.
Also Zelle1:"Wert1 Wert2 .... WertN" zu Zelle1:"Wert1" Zelle2:"Wert2" ZelleN:"WertN"
Ich habe im Forum schon folgenden VBA-Code gefunden (Quelle):
Visual Basic-Quellcode
- Dim Zeichenlaenge As Byte
- Dim Laenge_zweiter_Teil As Byte
- Dim Zeichenfolge As Variant
- Dim Zeile1 As Integer
- Dim Spalte1 As Integer
- Dim Zielspalte1 As Integer
- Dim Zielspalte2 As Integer
- Dim Spalte2 As Integer
- Spalte2 = 2
- Zeichenfolge = " "
- Zeile1 = 2
- Spalte1 = 1
- Zielspalte1 = 1
- Zielspalte2 = 2
- Again:
- Do While Tabelle1.Cells(Zeile1, Spalte1) <> ""
- If Tabelle1.Cells(Zeile1, Spalte2) = "" Then
- Zeichenlaenge = Len(Tabelle1.Cells(Zeile1, Spalte1))
- erster_Teil = Left(Tabelle1.Cells(Zeile1, Spalte1), (InStr(Tabelle1.Cells(Zeile1, Spalte1), Zeichenfolge) - 1))
- Laenge_zweiter_Teil = Zeichenlaenge - InStr(Tabelle1.Cells(Zeile1, Spalte1), Zeichenfolge)
- Tabelle1.Cells(Zeile1, Zielspalte2) = Right(Tabelle1.Cells(Zeile1, Spalte1), Laenge_zweiter_Teil)
- Tabelle1.Cells(Zeile1, Zielspalte1) = erster_Teil
- End If
- Loop
Nun dachte ich mir, dass ich einfach eine "goto" Anweisung am ende einbaue und Spalte1, Spalte2, Zielspalte1 und Zielspalte2 plus 1 rechne. Also das er den Inhalt aus B2 nun bearbeitet und nach einem Leerzeichen den Rest in C2 schreibt.
Leider muss da ein großer Denkfehler drin sein. Das Programm stürzt komplett ab.
So sieht das bei mir aus:
Visual Basic-Quellcode
- Dim Zeichenlaenge As Byte
- Dim Laenge_zweiter_Teil As Byte
- Dim Zeichenfolge As Variant
- Dim Zeile1 As Integer
- Dim Spalte1 As Integer
- Dim Zielspalte1 As Integer
- Dim Zielspalte2 As Integer
- Dim Spalte2 As Integer
- Spalte2 = 2
- Zeichenfolge = " "
- Zeile1 = 2
- Spalte1 = 1
- Zielspalte1 = 1
- Zielspalte2 = 2
- Oben:
- Do While Tabelle1.Cells(Zeile1, Spalte1) <> ""
- If Tabelle1.Cells(Zeile1, Spalte2) = "" Then
- Zeichenlaenge = Len(Tabelle1.Cells(Zeile1, Spalte1))
- erster_Teil = Left(Tabelle1.Cells(Zeile1, Spalte1), (InStr(Tabelle1.Cells(Zeile1, Spalte1), Zeichenfolge) - 1))
- Laenge_zweiter_Teil = Zeichenlaenge - InStr(Tabelle1.Cells(Zeile1, Spalte1), Zeichenfolge)
- Tabelle1.Cells(Zeile1, Zielspalte2) = Right(Tabelle1.Cells(Zeile1, Spalte1), Laenge_zweiter_Teil)
- Tabelle1.Cells(Zeile1, Zielspalte1) = erster_Teil
- End If
- Loop
- Spalte1 = Spalte1 + 1
- Zielspalte1 = Zielspalte1 + 1
- Zielspalte2 = Zielspalte2 + 1
- Spalte2 = Spalte2 + 1
- GoTo Oben
Kann mir bitte jemand sagen was ich falsch mache?
Danke!
LG FBM