Leerzeilen bei Wertwechsel einfügen
#1
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:
 
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
Antworten Top
#2
Hallo


Sowas macht man immer von unten nach oben...

Code:
Sub Leerzeilen_bei_Wertwechsel_Einfuegen()
    Dim letzteZeile As Long
    Dim i As Long

    ' Ermitteln der letzten Zeile mit Daten in der Spalte
    With ActiveSheet
        letzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row ' Hier Spalte A anpassen!

        ' Überprüfen, ob überhaupt Daten vorhanden sind
        If letzteZeile > 1 Then
       
            ' Durchlaufen der Spalte
            For i = letzteZeile To 2 Step -1
       
                ' Vergleichen des aktuellen mit dem vorherigen Wert
                If .Cells(i, 1) <> .Cells(i - 1, 1) Then
           
                    ' Einfügen einer Leerzeile oberhalb der aktuellen Zeile
                    .Rows(i).Insert Shift:=xlDown
       
                End If
            Next i
        End If
    End With
End Sub



LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • waswesich
Antworten Top
#3
…oh man, bin begeistert,
viiiiiiiiiiiiiiiiiiiiiiiiiiiiiielen Dank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste