Anzeige
Archiv - Navigation
1540to1544
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

VBA: Texte in Blöcke aufteilen mit Leerzeilen

VBA: Texte in Blöcke aufteilen mit Leerzeilen
16.02.2017 16:25:54
KlausF
Hallo Forum,
Ausgangsstellung: mehrere tausend Texte in Spalte A mit Überschrift in A und B
Endergebnis in Spalte C und D:
Texte in 10er Blöcke nebeneinander, dazwischen immer vier Leerzeilen.
Texte laufen am Ende einfach aus
Gesucht wird eine einfache und variable VBA-Lösung:
Variabel in Blockgröße und Anzahl Leerzeilen
Bin für jede Hilfe dankbar.
https://www.herber.de/bbs/user/111528.xls
Gruß
Klaus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Texte in Blöcke aufteilen mit Leerzeilen
16.02.2017 17:15:16
Daniel
HI
mal als Copy-Paste-Variante, dh nicht unbedingt das schnellste.
in Spalte A dürfen keine Leerzellen vorhanden sein.
deine Einstellungen (Blockbgröße, Anzahl Leerzeilen, Anzahl Spalten nebeneinander) kannst du in den Konstanten am Anfang machen:
Sub test()
Const Zeilen As Long = 10
Const Leerzeilen As Long = 4
Const Spalten As Long = 2
Dim z As Long
Dim s As Long
For z = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step Zeilen * Spalten
For s = 0 To Spalten - 1
Cells(z + s * Zeilen, 1).Resize(Zeilen).Copy
Cells(Rows.Count, 3 + s).End(xlUp).Offset(Leerzeilen + 1).PasteSpecial xlPasteAll
Next
Next
End Sub
Gruß Daniel
Anzeige
noch eine Kleinigkeit
16.02.2017 17:30:45
KlausF
Hallo Daniel,
vielen Dank, so habe ich mir das vorgestellt!
Allerdings fängt Deine Lösung mit 4 Leerzeilen an, es soll aber mit Text
in Zeile 2 angefangen werden wie in meinem Beispiel.
Kannst Du das noch anpassen?
Vielen Dank.
Klaus
AW: noch eine Kleinigkeit
16.02.2017 18:29:11
Daniel
naja, ein bisschen was darfst du auch tun
Gruß Daniel
AW: noch eine Kleinigkeit
16.02.2017 19:03:05
KlausF
Hallo Daniel,
mit den Const Leerzeilen habe ich das ehrlich gesagt nicht hinbekommen.
Logischerweise müsste ja die Paste-Zeile bei Offset(Leerzeilen + 1) angepasst werden.
Helfe mir jetzt aber, in dem ich die Vorlaufzeilen am Ende dynamisch lösche:
Range("C2:D" & Leerzeilen + 1).Delete
Funktioniert auch. Vielen Dank noch einmal.
Gruß
Klaus
Anzeige
AW: noch eine Kleinigkeit
16.02.2017 19:20:21
Daniel
HI
naja, das Offset müsste im ersten Schleifendurchlauf anders sein als in allen weiteren, das ist halt etwas umständlich zu programmieren.
man könnte die Einfügezeile aber auch berechnen:

Sub test()
Const Zeilen As Long = 10
Const Leerzeilen As Long = 4
Const Spalten As Long = 2
Dim z As Long
Dim ze as long
Dim s As Long
ze = 2
For z = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step Zeilen * Spalten
For s = 0 To Spalten - 1
Cells(z + s * Zeilen, 1).Resize(Zeilen).Copy
Cells(ze, 3 + s).PasteSpecial xlPasteAll
Next
ze = ze + Zeilen + Leerzeilen
Next
End Sub
Gruß Daniel
Anzeige
Perfekt
16.02.2017 19:36:24
KlausF
Vielen Dank Daniel, sehr lehrreich für mich!
Gruß
Klaus

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige