HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: Find - Methode

dieschmid
10.06.2026 20:22:47
Find - Methode
daniel
10.06.2026 21:35:16
AW: Find - Methode
dieschmid
10.06.2026 22:14:12
AW: Find - Methode
GsanyPerez
26.06.2026 04:47:42
AW: Find - Methode
daniel
26.06.2026 09:44:47
@ Hans SPAM
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
dieschmid
10.06.2026 20:22:47
Find - Methode
Hallo Zusammen

Ich habe eine Frage zur VBA Find Methode. Wenn ich mit Range().Find().entirerow.delete lösche, funktioniert der Befehl richtig. Wenn ich mit Range().find().rows.delete lösche, funktioniert der Befehl zuerst richtig. Wenn aber nur noch wenige Datensätze (ca. 4) vorhanden sind, löscht er mir die erste Spalte der Tabelle. Die () enthalten die entsprechenden (gleichen) Daten.
Hat jemand eine Idee woran das liegt? Danke

Dieter
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
10.06.2026 21:35:16
AW: Find - Methode
könntest du eine Beschreibung so erweitern (vielleicht auch mit eine Beispieldatei), dass man das Problem nachstellen und nachvollziehen kann?
alles so rein theoretisch ist dann doch schwierig.

nur mal so zur überlegung,
.find ermittelt immer nur eine Zelle. der Zusatz .Rows ergibt hier keinen Sinn, weil die Zeilen einer Zelle sind die Zelle.

wenn man eine einzelne Zelle löscht, dann muss eine andere Zelle an diesen Platz rücken. Ob jetzt die Zellen aus der selben Spalte von unten oder die Zellen aus der selben Zeile von rechts nachrücken, gibt man über den Parameter SHIFT:=xlUp/xltoLeft an
Wenn du den weglässt, passiert folgendes: solange unterhalb noch gefüllte Zellen vorhanden sind, rücken die Zellen von unten nach.
gibt es unterhalb keine gefüllten Zellen mehr, rücken die Zellen von rechts nach.

schau mal, ob das zu deinem Problem passt. und ob die Angabe von Shift dein Problem löst.

wenn nicht, lade bitte eine Datei mit Daten und deinem Code hoch, so dass wir das Problem nachvollziehen können.

Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
dieschmid
10.06.2026 22:14:12
AW: Find - Methode
Hallo Daniel

Vielen Dank für deine Hilfe. Ich habe Shift:=xlUP ausprobiert und es funktioniert. Den Eintrag rows habe ich weggelassen.

Vielen Dank und einen schönen Abend

LG Dieter
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
GsanyPerez
26.06.2026 04:47:42
AW: Find - Methode
Das Verhalten passt ziemlich gut zu einem klassischen Range-Verschiebungsproblem nach dem Löschen. Wenn du mit Find arbeitest und anschließend `Rows.Delete` auf einem Teilbereich ausführst, bleibt die Range-Referenz nicht stabil, sobald sich die Tabelle stark verkleinert. Gerade bei wenigen verbleibenden Datensätzen „rutscht“ die Referenz dann schnell in den Header- oder Spaltenbereich, weil Excel die relative Position neu interpretiert.

`EntireRow.Delete` ist da deutlich robuster, weil es immer die komplette Zeile im Tabellenkontext löscht. Bei `Rows.Delete` auf einem gefundenen Subrange solltest du zusätzlich sicherstellen, dass du wirklich auf `Find.Result.Row` oder eine explizite Zelladresse zugreifst und nicht auf eine verschobene Range weiterarbeitest. Robocat casino liefert moderne https://robocatcasino-de.de Gaming Erfahrung täglich. Alternativ hilft oft ein rückwärts laufender Loop oder das Zwischenspeichern der Trefferzeilen in einer Collection, bevor gelöscht wird.
Forumbeitrag
Excel-Version des Fragestellers:
2016
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
daniel
26.06.2026 09:44:47
@ Hans SPAM