25.04.2025, 07:53
Hallo, ich bekomme eine Exceltabelle mit mehreren hunderten Zeilen.
In A stehen unterschiedliche Zahlen, manchmal auch gleiche, zum Beispiel:
456
456
456
554
554
666
763
763
763
763
899
Wenn sich jetzt der Wert ändert, hätte ich gerne eine Leerzeile dazwischen,
zum Beispiel:
456
456
456
554
554
666
763
763
763
763
899
Dazu habe ich ein Makro gefunden, was auch zum teil genau das macht wie ich es gerne hätte.
Zum Teil weil, die letzten 10 – 50 Zeilen werden einfach ignoriert.
Ich muss gestehen, dass ich absolut keine Ahnung von Makros habe.
Besteht die Möglichkeit, dass mir das jemand dahingehend ändern kann, dass alle Zeilen abgearbeitet werden?
Vielen Dank schon mal im Voraus,
hier mein gefundenes Makro:
In A stehen unterschiedliche Zahlen, manchmal auch gleiche, zum Beispiel:
456
456
456
554
554
666
763
763
763
763
899
Wenn sich jetzt der Wert ändert, hätte ich gerne eine Leerzeile dazwischen,
zum Beispiel:
456
456
456
554
554
666
763
763
763
763
899
Dazu habe ich ein Makro gefunden, was auch zum teil genau das macht wie ich es gerne hätte.
Zum Teil weil, die letzten 10 – 50 Zeilen werden einfach ignoriert.
Ich muss gestehen, dass ich absolut keine Ahnung von Makros habe.
Besteht die Möglichkeit, dass mir das jemand dahingehend ändern kann, dass alle Zeilen abgearbeitet werden?
Vielen Dank schon mal im Voraus,
hier mein gefundenes Makro:
Code:
Sub Leerzeilen_bei_Wertwechsel_Einfuegen()
Dim letzteZeile As Long
Dim i As Long
Dim vorherigerWert As Variant
Dim aktuellerWert As Variant
' Ermitteln der letzten Zeile mit Daten in der Spalte
With ActiveSheet
letzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row ' Hier Spalte A anpassen!
End With
' Überprüfen, ob überhaupt Daten vorhanden sind
If letzteZeile > 1 Then
' Initialisieren des vorherigen Werts
vorherigerWert = ActiveSheet.Cells(1, 1).Value ' Hier Spalte A anpassen!
' Durchlaufen der Spalte ab der zweiten Zeile
For i = 2 To letzteZeile
' Wert der aktuellen Zelle abrufen
aktuellerWert = ActiveSheet.Cells(i, 1).Value ' Hier Spalte A anpassen!
' Vergleichen des aktuellen mit dem vorherigen Wert
If aktuellerWert <> vorherigerWert Then
' Einfügen einer Leerzeile oberhalb der aktuellen Zeile
ActiveSheet.Rows(i).Insert Shift:=xlDown
' Aktualisieren der letzten Zeile nach der Einfügung
letzteZeile = letzteZeile + 1
End If
' Speichern des aktuellen Werts für den nächsten Vergleich
vorherigerWert = aktuellerWert
Next i
End If
End Sub