12.01.2023, 13:28
Hallo liebe Gemeinde,
ich versuche grade, dass das Makro in einer Spalte ein "," findet, diese Zeile dann verdoppelt und den Wert, der in der Spalte steht, auf die beiden
Zeilen in der Nachbarzeile darzustellen.
Das heißt, dass der erste Wert, der vor dem Komma steht, in die Nachbarzelle der Ursprungszeile geschrieben wird und der Wert, der nach dem Komma steht,
in die Nachbarzelle der verdoppelten Zeile (jeweils neben der Spalte "Dienste"), so dass ich für beide Dienste jeweils eine Zeile habe.
Dass verdoppeln klappt wunderbar, nur das aufsplitten des Wertes bekommen ich nicht hin.
Hier mein Versuch:
Dim LR As Long, i As Long, Dienste As String, Dienst1 As String, Dienst2 As String
Application.ScreenUpdating = False
With Sheets("Testblatt")
If .FilterMode Then .ShowAllData ' Autofilter alle
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
For i = LR To 2 Step -1
If InStr(.Cells(i, 14), ",") > 0 Then
With .Range(.Cells(i, 1), .Cells(i, 14))
.Offset(1, 0).Insert Shift:=xlDown
.Copy .Offset(1, 0)
Dienste = .Cells(i, 14).Value 'Wert der Zelle "Dienste"
Dienst1 = Left(Dienste, 4) ' Dienst1
Dienst2 = Right(Dienste, 4) ' Dienst2
.Cells(i, 15) = Dienst1
.Cells(i + 1, 15) = Dienst2
End With
End If
Next
End With
Wo ist mein Denkfehler bei der ganzen Sache?
Viele Grüße
Andreas
Testdatei ist dabei.
Testmappe CEF.xlsm (Größe: 22,43 KB / Downloads: 9)
ich versuche grade, dass das Makro in einer Spalte ein "," findet, diese Zeile dann verdoppelt und den Wert, der in der Spalte steht, auf die beiden
Zeilen in der Nachbarzeile darzustellen.
Das heißt, dass der erste Wert, der vor dem Komma steht, in die Nachbarzelle der Ursprungszeile geschrieben wird und der Wert, der nach dem Komma steht,
in die Nachbarzelle der verdoppelten Zeile (jeweils neben der Spalte "Dienste"), so dass ich für beide Dienste jeweils eine Zeile habe.
Dass verdoppeln klappt wunderbar, nur das aufsplitten des Wertes bekommen ich nicht hin.
Hier mein Versuch:
Dim LR As Long, i As Long, Dienste As String, Dienst1 As String, Dienst2 As String
Application.ScreenUpdating = False
With Sheets("Testblatt")
If .FilterMode Then .ShowAllData ' Autofilter alle
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
For i = LR To 2 Step -1
If InStr(.Cells(i, 14), ",") > 0 Then
With .Range(.Cells(i, 1), .Cells(i, 14))
.Offset(1, 0).Insert Shift:=xlDown
.Copy .Offset(1, 0)
Dienste = .Cells(i, 14).Value 'Wert der Zelle "Dienste"
Dienst1 = Left(Dienste, 4) ' Dienst1
Dienst2 = Right(Dienste, 4) ' Dienst2
.Cells(i, 15) = Dienst1
.Cells(i + 1, 15) = Dienst2
End With
End If
Next
End With
Wo ist mein Denkfehler bei der ganzen Sache?
Viele Grüße
Andreas
Testdatei ist dabei.
Testmappe CEF.xlsm (Größe: 22,43 KB / Downloads: 9)