Macro

Hallo,

ich habe eine Bitte!

Dieses Macro dient dazu, Informationen in 18er Pakete zu packen. D.h. in einer Spalte stehen Informationen untereinander und das Macro geht die Informationen durch und packt immer 18 Informationen zu einem Paket zusammen.

Nun habe ich hier aber das Problem, dass das Macro bei den Paketen was falsch macht. Er nimmt immer vom vorhergehenden Paket die letzte Information und stellt sie beim nächsten Paket an erster Stelle so dass, die Informationen immer doppelt vorhanden sind. Einmal an letzter Stelle und beim nächsten Paket wieder an erster Stelle.

Kann mir jemand bei dem Problem helfen?

Hier der Code mit dem ich arbeite.

Sub tt()
Dim ZeiA As Long, ZeiB As Long, Z As Long, Zmax As Long
Columns(2).Delete
Range(„B1“) = Range(„A1“)
Zmax = Cells(Rows.Count, 1).End(xlUp).Row
ZeiB = 2
'die 18 steht für die 18er Pakete
For ZeiA = 2 To Zmax Step 18
For Z = 0 To 18
If Zmax >= ZeiA + Z Then
Cells(ZeiB, 2) = Cells(ZeiB, 2) & Cells(ZeiA + Z, 1) & „“
End If
Next Z
'sagt wie viele Spalten zwischen den einzelen Paketen frei sein sollen
ZeiB = ZeiB + 2
Next ZeiA
End Sub

Hallo Tom!

Ich vermute, dass der Fehler in folgender Zeile ensteht For Z = 0 To 18. Ist wahrscheinlich ein „Off-by-one“-Fehler.
Was passiert denn, wenn du die Schleife nur bis 17 zählen lässt?

Sub tt()
Dim ZeiA As Long, ZeiB As Long, Z As Long, Zmax As Long
Columns(2).Delete
Range(„B1“) = Range(„A1“)
Zmax = Cells(Rows.Count, 1).End(xlUp).Row
ZeiB = 2
'die 18 steht für die 18er Pakete
For ZeiA = 2 To Zmax Step 18
For Z = 0 To 18
If Zmax >= ZeiA + Z Then
Cells(ZeiB, 2) = Cells(ZeiB, 2) & Cells(ZeiA + Z, 1) & „“
End If
Next Z
'sagt wie viele Spalten zwischen den einzelen Paketen frei sein sollen
ZeiB = ZeiB + 2
Next ZeiA
End Sub

Nun habe ich hier aber das Problem, dass das Macro bei den
Paketen was falsch macht. Er nimmt immer vom vorhergehenden
Paket die letzte Information und stellt sie beim nächsten
Paket an erster Stelle so dass, die Informationen immer
doppelt vorhanden sind. Einmal an letzter Stelle und beim
nächsten Paket wieder an erster Stelle.

Hallo Tom,

nimm mal

For Z = 0 To 17

Gruß
Reinhard

Hallo Tom,

verstehe zwar nicht genau, wie das Makro funktioniert (wenn ich eins brauch, kopier ich immer eins und verändere es mit Versuch und Irrtum immer so lange, bis es funktioniert). Könnte es vielleicht sein, dass es an Z liegt? Z= 0-18; das sind also 19. Vielleicht muß es heißen Z= 0-17 oder 1-18?

VG

Danke schön! Der Fehler ist behoben. :smile: