Excel Schleife durchschnittlich kompliziert
Guten Abend,
die Umsetzung habe ich mir überlegt, nur jetzt scheitert es an der Syntax.
Wie erreiche ich den effekt, dass in excel per vba folgendes passiert. die koplette spalte b soll in einem datenblatt nach dem wort "konto" durchsucht werden und sobald dieses wort gefunden wird soll der wert 1 feld über konto eine zeile links neben konto und auch an alle weiteren felder darunter geschrieben werden, bis wieder in spalte b das wort konto vorkommt und wieder der wert 1 feld über dem wort konto links neben das feld konto geschrieben wird, so lange bis wieder das wort konto vorkommt usw. das wort konto kann nur in spalte b vorkommen und es sollte von oben nach unten abgearbeitet werden, bis das wort konto nicht mehr erscheint.
alternative: kennt jemand ein buch, welches das an mich heranführen kann?
grüße chris
vorher

nachher
die Umsetzung habe ich mir überlegt, nur jetzt scheitert es an der Syntax.
Wie erreiche ich den effekt, dass in excel per vba folgendes passiert. die koplette spalte b soll in einem datenblatt nach dem wort "konto" durchsucht werden und sobald dieses wort gefunden wird soll der wert 1 feld über konto eine zeile links neben konto und auch an alle weiteren felder darunter geschrieben werden, bis wieder in spalte b das wort konto vorkommt und wieder der wert 1 feld über dem wort konto links neben das feld konto geschrieben wird, so lange bis wieder das wort konto vorkommt usw. das wort konto kann nur in spalte b vorkommen und es sollte von oben nach unten abgearbeitet werden, bis das wort konto nicht mehr erscheint.
alternative: kennt jemand ein buch, welches das an mich heranführen kann?
grüße chris
vorher

nachher

Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214418
Url: https://administrator.de/forum/excel-schleife-durchschnittlich-kompliziert-214418.html
Ausgedruckt am: 12.04.2025 um 03:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo ChrisDynamite!
Das sollte sich etwa so machen lassen:
Grüße
bastla
Das sollte sich etwa so machen lassen:
Sub Aufbereiten()
AbZeile = 2
Spalte = 2 'Spalte B
Suche = "*Konto*"
Zeile = AbZeile
Wert = Cells(Zeile, Spalte).Value 'Zelleninhalt holen
Do While Wert <> "" 'Solange Zelle nicht leer
If Wert Like Suche Then 'Suchbegriff enthalten?
Konto = Cells(Zeile - 1, Spalte).Value 'Konto aus darüber liegender Zelle lesen
End If
Cells(Zeile, Spalte - 1).Value = Konto 'Konto links neben aktueller Zelle eintragen
Zeile = Zeile + 1 'nächste Zeile
Wert = Cells(Zeile, Spalte).Value 'Zelleninhalt holen
Loop
End Sub
Grüße
bastla
Hallo ChrisDynamite!
Aufgrund Deines Beispiels war ich von zusammenhängenden Daten ausgegangen - Alternative:
Grüße
bastla
Aufgrund Deines Beispiels war ich von zusammenhängenden Daten ausgegangen - Alternative:
Sub Aufbereiten()
AbZeile = 2
Spalte = 2 'Spalte B
Suche = "*Konto*"
BisZeile = Cells(Rows.Count, Spalte).End(xlUp).Row 'letzte Zeile mit einem Wert in "Spalte" ermitteln
For Zeile = AbZeile To BisZeile
Wert = Cells(Zeile, Spalte).Value 'Zelleninhalt holen
If Wert Like Suche Then 'Suchbegriff enthalten?
Konto = Cells(Zeile - 1, Spalte).Value 'Konto aus darüber liegender Zelle lesen
Cells(Zeile - 1, Spalte - 1).Value = "" 'Zellinhalt neben neuem Konto löschen
End If
If Trim(Wert) <> "" Then Cells(Zeile, Spalte - 1).Value = Konto 'Wenn Zelle nicht leer, Konto links neben aktueller Zelle eintragen
Next
End Sub
bastla