Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
320to324
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
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Do-Loop Schleife

Do-Loop Schleife
08.10.2003 18:40:23
Peppi
Hallo,

Ich habe ein Problem mit einer Do-Loop Schleife. Ich bekomme immer die Fehlermeldung 'Loop ohne Do'.
Den Code habe ich unten mal eingefügt.

Vielen Dank

Gruß
Peppi

'Prüfen, ob SuchKatalogblatt bereits existiert
Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
'Wenn SuchKatalogblatt nicht existiert, dann...
'If 1
If objSuchKatalogblatt Is Nothing Then
Do

'Alle Blätter durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheets
'Verwendeten Bereich jedes Blatts durchsuchen
With objBlatt.UsedRange
'Suchfunktion aufrufen
Set objZelle = .Find(What:=Trim(strSuchtext), LookIn:=xlValues)
'Wenn erster Treffer, dann...
'If 2
If Not objZelle Is Nothing Then
'... Fundstelle merken
strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
'Wenn der Treffe nicht im Übersichtsblatt ist
'If 123
If objBlatt.Name <> "Übersicht" Then
'Sub Suchkatalogblattanlegen aufrufen
Call Suchkatalogblattanlegen(strSuchtext, strErsteFundstelle, objBlatt, objZelle)
Exit Sub
'Wenn der Treffer auf dem Übersichtsblatt ist...
'If 123
Else
'Die Schleife nochmal durchlaufen

Loop
'If 123
End If
Else
'Infobox mit "Keine Fundstellen!" öffnen
MsgBox "Keine Fundstellen!0000!", vbInformation, APP_NAME
Exit Sub
End If



End With


Next

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

Betreff
Datum
Anwender
Anzeige
AW: Do-Loop Schleife
08.10.2003 18:48:01
Hajo_Zi
Hallo Peppi

arbeite mal mit Einrücken. If muß imer innerhalb Do Loop; For Next usw abgeschlossen sein. Bei Dir Stimmt fast nchts.
Hier mal den Code mit Einrücken, da fält es Dir bestimmt auch gleich auf.


Sub test()
'Prüfen, ob SuchKatalogblatt bereits existiert
Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
'Wenn SuchKatalogblatt nicht existiert, dann...
'If 1
If objSuchKatalogblatt Is Nothing Then
Do
'Alle Blätter durchlaufen
For Each objBlatt In ActiveWorkbook.Worksheets
'Verwendeten Bereich jedes Blatts durchsuchen
With objBlatt.UsedRange
'Suchfunktion aufrufen
Set objZelle = .Find(What:=Trim(strSuchtext), LookIn:=xlValues)
'Wenn erster Treffer, dann...
'If 2
If Not objZelle Is Nothing Then
'... Fundstelle merken
strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
'Wenn der Treffe nicht im Übersichtsblatt ist
'If 123
If objBlatt.Name <> "Übersicht" Then
'

Sub Suchkatalogblattanlegen aufrufen
Call Suchkatalogblattanlegen(strSuchtext, strErsteFundstelle, objBlatt, objZelle)
Exit Sub
'Wenn der Treffer auf dem Übersichtsblatt ist...
'If 123
Else
'Die Schleife nochmal durchlaufen
Loop
'If 123
End If
Else
'Infobox mit "Keine Fundstellen!" öffnen
MsgBox "Keine Fundstellen!0000!", vbInformation, APP_NAME
Exit Sub
End If
End With
Next
End Sub


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Anzeige
AW: Do-Loop Schleife
08.10.2003 18:50:43
Josef Ehrensberger
Hallo Peppi,

ohne mich jetzt genauer mit deinem code auseinanderzusetzten,
liegt das problem wohl in der schlechten struckturierung und
fehlerhaften verschachtelung der schleifen.

*****
Do --- Schleife 1 start
For --- Schleife 2 start
With

Loop --- Ende Schleife 1
End With
Next --- Ende Schleife 2

****

Versuche zuerst einmal die verschachtelung zu korrigieren!

Gruß Sepp
AW: Do-Loop Schleife
08.10.2003 19:00:21
Nepumuk
Hallo Pepi,
ich habe mal etwas Struktur in dein Programm gebracht. Nach jeder Anweisung die mehrere Zeilen umfasst nach rechts und jede abschließende Anweisung nach links. Du siehst, da stimmt nicht nur Do - Loop nicht, sondern auch For - Next sowie If - Else - End if auch With und End With stehen nicht übereinander. Geh einfach die erste If - Anweisung senkrecht nach unten und es kommt kein End If sondern Next. Wenn du in Zukunft deinen Programmen diese Struktur verleihst, können dir diese Fehler kaum noch passieren.


Option Explicit
Public Sub pepi()
Set objSuchKatalogblatt = GetWorksheet(strSuchtext)
If objSuchKatalogblatt Is Nothing Then
Do
For Each objBlatt In ActiveWorkbook.Worksheets
With objBlatt.UsedRange
Set objZelle = .Find(What:=Trim(strSuchtext), LookIn:=xlValues)
If Not objZelle Is Nothing Then
strErsteFundstelle = objBlatt.Name & "!" & objZelle.Address
If objBlatt.Name <> "Übersicht" Then
Call Suchkatalogblattanlegen(strSuchtext, strErsteFundstelle, objBlatt, objZelle)
Exit Sub
Else
Loop
End If
Else
MsgBox "Keine Fundstellen!0000!", vbInformation, APP_NAME
Exit Sub
End If
End With
Next
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Do-Loop Schleife
08.10.2003 19:17:56
Peppi
Hallo,

vielen Dank. Ich werde es gleich mal ausprobieren. Ich mus zugeben. Mit einer richtigen Strukturierung stehe ich noch ein wenig auf Kriegsfuß, ist aber auch erst mein erstes Projekt.

Vielen Dank erstmal.

Gruß
Peppi
AW: Do-Loop Schleife
08.10.2003 19:31:32
PeterW
Hallo Peppi,

schau dir im Downloadbereich mal vbePLUSde.zip an. Ein nettes Tool, das u.a. den Code passend einrückt. So lassen sich Strukturfehler recht schnell finden.

Gruß
Peter
AW: Do-Loop Schleife
08.10.2003 19:45:43
Peppi
Hallo,

Danke für den Tip. Werde ich mir mal ansehen.

Grup
Peppi

218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige