Leerzeilen einfügen innerhalb einer Schleife
30.12.2016 11:50:24
Marc
Hi,
ich versuche mich gerade an meinen ersten VBA-Schritten und möchte einen Banken-CSV-Export ein wenig "aufhübschen".
Vor diesem Hintergrund habe ich eine Range definiert - beginnenend mit der ersten Konto-Bewegung bis zum Zeilenende.
Nun will ich die Monatsscheiben gruppieren, bzw. eine paar Summen einfügen. Zur Vorbereitung ermitteln ich daher für jede Kontobewegung/Zeile das Datum (steht in Spalte A) und vergleiche das mit dem aktuellen Monat. Ist der Wert in der Zelle ungleich dem aktuellen Monat möchte ich gern eine Leerzeile einfügen.
Mein bis dato kläglicher Versuch sieht so aus:
Sub Makro1()
Dim LastRow As Long
Set sht = Sheets("Tabelle1")
LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
Dim rng As Range, cell As Range
Set rng = Range("A8", Cells(LastRow, 1))
Dim CurrentMonth As Integer
CurrentMonth = Month(Date)
'MsgBox ("aktueller Monat: " & CurrentMonth)
For Each cell In rng
If Month(cell) < CurrentMonth And Not IsEmpty(cell.Value) Then
Rows(cell.Row).Insert shift:=xlShiftDown
End If
Next cell
End Sub
Mein Problem: Obwohl ich schon versucht habe zu prüfen, dass der Inhalt nicht leer sein darf lande ich bei Ausführung immer in einer Dauerschleife und das Makro fügt nur noch Leerzeilen ein. Kann mir jemand einen Hinweis geben was ich vergessen habe?
Außerdem habe ich noch eine zweite Frage zum Zeilenende:
In meinem Makro ermittel ich die Anzahl der Zeilen ja bereits zu Beginn. Wenn ich jetzt aber anfange Zeilen einzufügen passt das ja nicht mehr. Wie kann ich also eine Schleife so bauen, dass das Zeilenende sich der veränderten Liste anpasst?
Danke im Voraus für alle Tipps/Hinweise!