Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1544to1548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilenzähler macht nicht was er soll

Zeilenzähler macht nicht was er soll
06.03.2017 11:01:41
Hendrik
Hallo zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenzähler macht nicht was er soll
06.03.2017 11:03:49
Hendrik
Das Problem scheint ja zu sein, dass ich über der ursprünglich ersten Zeile neue Zeilen einfüge.
Kann ich, nach dem Einfügen, irgendwie den Zeilenzähler resetten?
AW: Zeilenzähler macht nicht was er soll
06.03.2017 12:17:46
Zwenn
Hallo Hendrik,
wenn Du das in einer Tabelle machen willst, dann ist es besser, wenn Du sie von unten nach oben abarbeitest. Dann liegen die eingefügten Zeilen immer hinter dem aktuellen Schleifenzähler. Einen Schleifenzähler selbst manipuliert man nicht, weil sich dann nur noch schlecht nachvollziehen lässt, was das Makro eigentlich macht.
Eine zweite Möglichkeit ist, die Tabelle komplett in einem neuen Tabellenblatt aufbauen zu lassen. Auch in dem Fall gibt es keine Probleme mit Schleifenzählern. Das würde Sinn machen, wenn Deine Tabelle sehr viele Zeilen enthält (mehrere 1.000). Das Einfügen von Zeilen in eine große Tabelle dauert sehr lange, weil alle Zeilen darunter nach unten verschoben werden müssen. Da ist Excel nicht sehr performant.
Viele Grüße,
Zwenn
Anzeige
AW: Zeilenzähler macht nicht was er soll
08.03.2017 15:23:31
Peter
Hallo Hendrick,
ich habe mal einen alternativen Lösungsvorschlag erarbeitet. Hier meine Datei
https://www.herber.de/bbs/user/112043.xlsm
Ich nehme an, dass neben der Spalte "D" noch andere Spalten (vor bzw. hinter "D") existieren. In meinem Beispiel habe ich 12 Spalten nach Spalte D als Datenspalten berücksichtigt. Die Testdaten befinden sich in der Tabelle2. In der Realität werden die Echtdaten aus ener anderen Arbeitsmappe in die Tabelle1 eingefügt, dazu ist der Makro1 entsprechend abzuändern. In der Tabelle2 befindet sich der Block "AL2:AP9", der für die Ausführung erforderlich ist und darf daher nicht gelöscht werden. Ebenso sind die im Bereich "R1:AI1" abgestellten Formeln (in beiden Tabellen) für die Ausführung erforderlich.
Du kannst die Ausführung des Tests auch nacheinander mit den Makros 1 bis 5 ausführen, indem Du vor die Call-Anweisungen ein Hochkomma setzt. Dadurch werden die Zwischenergebnisse sichtbar.
Bitte mal ausprobieren, Rückmeldung wäre schön.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Zeilenzähler macht nicht was er soll
08.03.2017 16:14:52
Hendrik
Hallo Zwenn und Peter,
vielen Dank!
Ich habe die neuen Zeilen nun immer unterhalb angefügt und dann funktioniert es.
Grüße
Hendrik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige