Zeilenzähler macht nicht was er soll
06.03.2017 11:01:41
Hendrik
mein Artikelcode ist ein Drei-Zeichen-String und er steht entweder alleine in einer Zelle (Spalte D) oder durch ", " getrennt, also beispielsweise so: "AAA, BBB, CCC".
Stehen in einer solchen Zelle mehr als ein Artikelcode, soll die Zeile so lange dubliziert werden, bis das nicht mehr der Fall ist. Aus obigen Beispiel entstehen also drei statt einer Zeile. Eine für AAA, eine für BBB und eine für CCC.
Was macht dieser Code hier falsch?
Es werden zwar Zeilen erstellt (erste For-Schleife), bei der Befüllung des Artikelcodes (zweite For-Schleife) wird aber konsequent der falsche Zeilenzähler genutzt. Obwohl j und i beide 0 sind, wird AAA nicht in D1, sondern in D3 geschrieben.
Danke für die Hilfe!
Sub trenneTypschluessel()
Dim blnEnde As Boolean
Dim i As Integer, j As Integer
Dim strAlt As String
Dim strSplit() As String
With ThisWorkbook.Worksheets("Tabelle1").Range("D1")
Do While blnEnde = False
strAlt = .Offset(i, 0)
If InStr(strAlt, ", ") > 1 Then
strSplit = Split(strAlt, ", ")
For j = 0 To UBound(strSplit) - 1
Rows(i + 1 & ":" & i + 1).Insert Shift:=xlDown, CopyOrigin:= _
xlFormatFromLeftOrAbove
Rows(i + 2 & ":" & i + 2).Copy
Rows(i + 1 & ":" & i + 1).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Next j
For j = 0 To UBound(strSplit)
.Offset(i + j, 0) = strSplit(j)
Next j
End If
i = i + 1
If .Offset(i, -3) = "" Then blnEnde = True
Loop
End With
End Sub