Supportnet / Forum / Tabellenkalkulation
Zellen vergleichen / Leerzeile einfügen
Frage
Hallo Community,
komme mit VBA noch nicht klar und habe daher folgendes Problem: In einer Spalte befinden sich untereinander sortiert (das hab ich ja schon mal hinbekommen ;)) mehrere Werte. Diese können in der Spalte mehrfach vorkommen. Wenn die vorhergehende Zelle den gleichen Wert enthält, so soll nichts passieren, ändert sich der Wert, so soll eine Zeile eingefügt werden. So viel zur Theorie, ...
Vielleicht kann mir auch dieses Mal wieder jemand aus der Community weiterhelfen ?!
Gruß
martl
Antwort 1 von Guenter
Hallo martl,
das habe ich noch nicht so ganz verstanden.
Normalerweise läufst Du in einer For/Next-Schleife alle Zellen der Spalte durch und vergleichst zwei untereinanderstehende Zellen: Wenn der Inhalt gleich ist, keine Aktion, wenn der Inhalt verschieden ist, einfügen einer Zelle.
Ist das so gemeint??
Gruß
Günter
das habe ich noch nicht so ganz verstanden.
Normalerweise läufst Du in einer For/Next-Schleife alle Zellen der Spalte durch und vergleichst zwei untereinanderstehende Zellen: Wenn der Inhalt gleich ist, keine Aktion, wenn der Inhalt verschieden ist, einfügen einer Zelle.
Ist das so gemeint??
Gruß
Günter
Antwort 2 von martl
Hallo Günter,
genau so hab ich mir das vorgestellt. Habs auch schon über div. Schleifen versucht, mir fehlt jedoch momentan noch der (VBA)-Überblick - aber - ich arbeite daran ;)
Gruß
martl
genau so hab ich mir das vorgestellt. Habs auch schon über div. Schleifen versucht, mir fehlt jedoch momentan noch der (VBA)-Überblick - aber - ich arbeite daran ;)
Gruß
martl
Antwort 3 von martl
Hallo Community,
bin schon ein bisschen weitergekommen:
Das Makro sieht momentan wie folgt aus:
Sub Test()
Dim l As Long
Dim ZL As Long 'Anzahl belegte Zellen
ZL = ActiveSheet.UsedRange.Rows.Count
Range("C2").Select
For l = 1 To ZL
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value _
Then Selection.EntireRow.Insert _
Else: ActiveCell.Offset(1, 0).Select
Next l
End Sub
Im Prinzip soll es eigentlich wie in der ersten Antwort funktionieren, momentan bekomm ich jedoch nur nach der ersten doppelten Zelle eine Zeile eingefügt:
z.B.
10
10
20
30
30
Hab also noch einige Verständnisschwierigkeiten was VBA angeht ;).
Gruß
martl
bin schon ein bisschen weitergekommen:
Das Makro sieht momentan wie folgt aus:
Sub Test()
Dim l As Long
Dim ZL As Long 'Anzahl belegte Zellen
ZL = ActiveSheet.UsedRange.Rows.Count
Range("C2").Select
For l = 1 To ZL
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value _
Then Selection.EntireRow.Insert _
Else: ActiveCell.Offset(1, 0).Select
Next l
End Sub
Im Prinzip soll es eigentlich wie in der ersten Antwort funktionieren, momentan bekomm ich jedoch nur nach der ersten doppelten Zelle eine Zeile eingefügt:
z.B.
10
10
20
30
30
Hab also noch einige Verständnisschwierigkeiten was VBA angeht ;).
Gruß
martl
Antwort 4 von coros
Hi @martl,
habe die Anweisung zum Öffnen des Tabellenbalttes einfach so hier hingeschrieben ohne es zu testen. Scheint scheinbar so nicht zu funktionieren. Vielleicht versuchst Du es mal mit nachfolgendem Code. Damit wird Deine Datei und das entsprechende Tabellenblatt geöffnet.
Private Sub CommandButton1_Click()
Workbooks.Open Filename:="C:\Eigene Dateien\Ebay-Liste.xls"
Sheets("Werkzeug").Select
End Sub
Ich hoffe, dass das Dein Problem löst,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar Dein Problem gelöst hat.
habe die Anweisung zum Öffnen des Tabellenbalttes einfach so hier hingeschrieben ohne es zu testen. Scheint scheinbar so nicht zu funktionieren. Vielleicht versuchst Du es mal mit nachfolgendem Code. Damit wird Deine Datei und das entsprechende Tabellenblatt geöffnet.
Private Sub CommandButton1_Click()
Workbooks.Open Filename:="C:\Eigene Dateien\Ebay-Liste.xls"
Sheets("Werkzeug").Select
End Sub
Ich hoffe, dass das Dein Problem löst,
coros
Und nicht vergessen, hier noch einmal zu posten, ob Dich die Hilfe weitergebracht oder sogar Dein Problem gelöst hat.
Antwort 5 von coros
Sorry, bin in den falschen Thread gelangt. Dieser Code war nicht für Dich bestimmt @martl.
Sorry noch mal,
coros
Sorry noch mal,
coros

