Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Schleife Endet nicht (.Find Method)
#1
Hallo zusammen ich wieder ^^,

ich habe folgende "Schleife"

Code:
   With Worksheets("Tabelle1").Range("F2:F200")
        Set c = .Find("SZ", LookIn:=xlValues)
            Do
                c.Offset(0, -1) = "SZ"
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
    End With

Der Code wird ausgeführt jedoch muss ich ihn stets mit ESC unterbrechen, damit ich weiter an der Liste arbeiten kann.
Woran liegt das?

VG Markus
Antworten Top
#2
Hi,

schau mal z.B. hier:  Beispiel zur FindNext-Methode | Herbers Excel-Server
Antworten Top
#3
Verwende Autofilter
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
Hi,

aus der Hilfe-Seite zur .Find-Methode:
Zitat:Wenn die Suche das Ende des angegebenen Suchbereichs erreicht, erfolgt ein Umbruch zum Anfang des Bereichs. Um eine Suche bei einem Umbruch zu beenden, speichern Sie die Adresse der ersten gefundenen Zelle, und testen Sie dann jede nachfolgende gefundene Zelladresse mit dieser gespeicherten Adresse.

Alles klar?
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#5
Hi Helmut,

die learn.microsoft-Seite ist in diesem Punkt aber in der Tat fehlerhaft (siehe Beispiel 1) Wink

Range.FindNext-Methode (Excel) | Microsoft Learn
Antworten Top
#6
(24.04.2024, 11:12){Boris} schrieb: (siehe Beispiel 1) 
Beispiel 1 ist korrekt: Ändert man den Wert der Fundstelle, muss man auf Nothing prüfen. Eine Endlosschleife kann hier nicht entstehen. 

Ändert man den Wert der Fundstelle nicht (Beispiel 2), prüft man nur beim Einstieg in die Schleife auf Nothing, danach auf Übereinstimmung mit der Adresse der ersten Fundstelle. Die Prüfung auf Nothing am Ende der Schleife ist also obsolet. 

Wenn die Fundstelle Nothing ist, führt der Versuch, die Adresse auszulesen, zwangsläufig zu einem Fehler. Dieser Bock war tatsächlich über Jahrzehnte in der OH (dort war Beispiel 1 mit zusätzlicher Prüfung auf Nothing am Ende der Schleife). Jetzt hat man es endlich korrigiert.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#7
Hi,

natürlich hast Du Recht. Ich hatte in Gedanken noch die Anforderung des TE gespeichert, der ja nicht den Suchbereich verändert sondern die Nachbarzelle mit

c.Offset(0, -1) = "SZ"

Und damit würde der Code auf learn.microsoft natürlich auch endlos laufen (was naturgemäß nicht der Fall ist, wenn die Werte im Suchbereich geändert werden).
Antworten Top
#8
Diese klare Differenzierung und Erläuterung vermisse ich schon immer in der OH.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#9
Hallo

Ich baue meine Find Codes immer mit Adr1 = 1. Find Adresse auf.  Alternativ geht es auch mit rw = Row als Zeile.

With Worksheets("Tabelle1").Range("F2:F200")
        Set C = .Find("SZ", LookIn:=xlValues)
        Adr1 = C.Address  '1. Find Adresse
        Do
          C.Offset(0, -1) = "SZ"
          Set C = .FindNext©
        Loop Until C.Adress = Adr1
    End With

mfg Gast 123
Antworten Top
#10
(24.04.2024, 12:52)Gast 123 schrieb: immer
Bedeutet in der Hälfte der Fälle falsch. Ich habe eben erläutert, warum.

Was passiert in deinem Code, wenn SZ nie gefunden wird?
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top


Gehe zu:


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