Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme mit Find

Probleme mit Find
Gregor
Hallo zusammen
Nach folgendem Code suche ich in einer umfangreichen Tabelle zB den Begriff "Muster". Die Zeile oder die Zeilen mit dem gefundenen Begriff "Muster" wird in eine andere Tabelle kopiert, wobei es 1 oder aber mehrere Zeilen sein können. Deshalb die Abfrage nach ZeileEnd.
Es wird immer ab der nächsten Zeile gesucht, bei mir also am Anfang nach Zeile 5 ab Zeile 6 und anschiessend nach der ZeileEnd (ist ZeileEnd 450 ab 451). Beim letzten Eintrag "Muster" geht der Loop jedoch in eine Endlosschleife, das heisst, der Code eruiurt immer wieder dieselbe Zeile sodass rng nie leer wird und eine Endlosschleife produziert.
Was ist hier das Problem bzw. wie kann ich das lösen? Danke und Gruss
Gregor
With Worksheets(1)
intLastRow = .Cells(Rows.Count, 8).End(xlUp).Row
Zeile = 5
Do
Set rng = .Range(.Cells(Zeile, 7), .Cells(intLastRow, 7)).Find("Muster", LookAt:=xlWhole)
If Not rng Is Nothing Then
Zeile = rng.Row
ZeileEnd = IIf(IsEmpty(.Cells(Zeile + 1, 1)), IIf(IsEmpty(.Cells(.Cells(Zeile, 1).End(xlDown).Row - 1, 8)), .Cells(.Cells(Zeile, 1).End(xlDown).Row, 8).End(xlUp).Row, .Cells(Zeile, 1).End(xlDown).Row - 1), Zeile)
intLastRowPaste = Worksheets(2).Cells(Rows.Count, 8).End(xlUp).Row + 1
'--- Kopierbereich
Set Kopieren = .Range(.Cells(Zeile, 1), .Cells(ZeileEnd, 20))
'--- Zielbereich
Set Ziel = Worksheets(2).Cells(intLastRowPaste, 1)
Kopieren.Copy Ziel
Zeile = ZeileEnd
End If
Loop While Not rng Is Nothing
End With

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Probleme mit Find
19.05.2010 12:56:25
Dirk
Hallo Gregor,
aendere mal die Do-Anweisung wie folgt
Do untill ZeileEnd>intlastrow
Sollte dann ordunugsgemaess gehen.
Las' hoeren, ob ok.
Gruss
Dirk aus Dubai
AW: Probleme mit Find
19.05.2010 13:33:56
Gregor
Hallo Dirk
Nein, das funktioniert leider nicht, weil ZeileEnd immer gleich bleibt sobald die Endllosschleife dreht und viel keiner sein kann als intLastRow, weil der Suchbegriff irgendwo in der Tabelle enden kann.
Gruss Gregor
AW: Probleme mit Find
19.05.2010 14:33:38
Mac4
Hallo Gregor,
warum machst Du es nicht mit FindNext? Schau hierzu mal in der OH nach der Find-Methode. Hier wird die erste Trefferaddresse in einer Variabelen gespeichert und die Schleife solange durchlaufen, bis die aktuelle Trefferadresse = der ersten ist.
Anzeige
AW: Probleme mit Find
19.05.2010 15:38:15
Gregor
Hallo Mac4
Vielen Dank, ich habe den Code umgebaut und schreibe am Schluss:
Loop While Not rng Is Nothing And rng.Address firstAddress
Es klappt insofern, dass der Code beendet wird, die erste gefundene Zeile aber am Schluss nochmals kopiert wird. Wie kann ich das verhindern, was ist falsch?
Danke und Gruss
AW: Probleme mit Find
19.05.2010 16:04:23
Mac4
Hi,
Not rng Is Nothing ist nicht notwendig, da Du die Datensätze ja kopierst - vllt. ist es das ja schon
AW: Probleme mit Find
20.05.2010 08:05:35
Gregor
Hallo Mac
Nein, leider nicht. Auch wenn ich Not rng Is Nothing weglasse, wird die erste gefundene Zeile nochmals kopiert, weil der Loop nochmals von vorne beginnt und erst dann die Whyle-Bedingen erfüllt werden.
Ich habe jetzt folgenden Befehl nach dem Do eingebaut:
If rng.Address = firstAddress Then Exit Do
Gruss Gregor
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige