Microsoft Excel

Herbers Excel/VBA-Archiv

Do Schleife mit Fehler

Betrifft: Do Schleife mit Fehler von: Steinert
Geschrieben am: 08.04.2021 19:34:49

Hallo,
ich verzweifele etwas:

Bei folgendem Makro wird mir der Fehler "Loop ohne Do" angezeigt, und ich weiss nicht warum.

Das Makro

Sub PDFListe()
'
' PDFListe Makro
'

    Dim zeile As Long
    zeile = 11
    
    Do
        If Not ActiveSheet.Cells(zeile, 35) = "" Then
        ActiveSheet.Cells(zeile, 35).Select
        Selection.Copy
        Range("W5:AA5").Select
        Selection.Paste
        Call PDFDatei
        Else: Exit Do
        zeile = zeile + 1
    Loop
   
End Sub

Irgendeine Idee, was das sein könnte?

ICh möchte in eine Spalte Werte eintragen und mit diesen Werten jeweils eine PDF-Datei erzeugen.
Die Schleife soll bis bei einer leeren Zelle in der Spaltte aufhören

Danke
Michael

Betrifft: AW: Do Schleife mit Fehler
von: Hajo_Zi
Geschrieben am: 08.04.2021 19:51:47

Hallo Michael,m

es felht End If.
Arbeite mit Einrüchkungen.

GrußformelHomepage

Betrifft: AW: Do Schleife mit Fehler
von: Piet
Geschrieben am: 08.04.2021 19:59:50

Hallo

schau dir bitte mal den von mir gekürzten Code an. Auf ActiveCell,Select kann man verzichten!! Ich habe es hier nur zum Testen eingebaut, damit du sofort sehen kannst wo dein Code stehen bleibt. Zum fachlichen Teil ...

Do Loop erwartet IMMMER eine Abbruchbedinung, die mit "While" oder "Until" beginnen muss, je nachdem was du auswerten willst. Sie kann oben bei Do stehen, oder unten bei Loop, was manchmal sinnvoller ist. Ausgeführt wird der Code solange, bis die Abbruchbedinung erfüllt ist! (Ohne IF Then!) Gibst du keine an verweigert Excel zu recht die Ausführung, weil das eine -ENDLOS- Todesschleife ist! Da wird dann nichts mehr gestoppt! Jedem Programmier passiert dieser Fehler, mir auch! Dann kann man das Programm nur noch gewaltsam stoppen!!

Ob du deinen Code auf: - ActiveSheet.Cells(zeile, 35) = "" oder ungleich "" setzen musst bitte selbst ausprobieren.

mfg Piet

  • Sub PDFListe()
        Dim zeile As Long
        zeile = 11
        
        Do Until ActiveSheet.Cells(zeile, 35) = ""
            ActiveSheet.Cells(zeile, 35).Copy _
            Destination:=Range("W5:AA5")
    '        Call PDFDatei
    '** Select nur zum Testen bis das Makro funktionert
    ActiveSheet.Cells(zeile, 35).Select
            zeile = zeile + 1
        Loop
       
    End Sub



  • Betrifft: AW: Do Schleife mit Fehler
    von: Günther
    Geschrieben am: 08.04.2021 20:43:06

    Moin Piet,
    ich halte mich in Sachen VBA bewusst zurück, aber hier ist eine der Ausnahmen…
    [Zitat]
    Do Loop erwartet IMMMER eine Abbruchbedinung, die mit "While" oder "Until" beginnen muss, je nachdem was du auswerten willst.
     [/Zitat]

    Falsch. Siehe dieser Beispiel-Code:
    Sub Do_Loop_geht_auch_solo()
    Dim i As Integer
    Do
       i = i + 1
       If i >= 100 Then Exit Do
    Loop
    MsgBox i
    End Sub


    Gruß
    Günther  |  mein Excel-Blog

    Betrifft: AW: Do Schleife mit Fehler
    von: Piet
    Geschrieben am: 08.04.2021 21:06:23

    Hallo Kollegen

    Stimmt, ich habe mich beim "Laufzeitfehler" von dem fehlenden "End If" taeuschen lassen. Bleibt die amüsante Frage was der Frager zu meinem Code Vorschlag sagt, denn ihr habt ihn NICHT bereinigt, und Do Loop um Until ergaenzt. Mal sehen was ihm besser gefaellt?? Auf jeden Fall hat er etwas dazu gelernt, auch wenn ich diesmal daneben lag. Ich sehe es gelassen ....

    mfg Piet

    Betrifft: AW: Do Schleife mit Fehler
    von: Steinert
    Geschrieben am: 08.04.2021 21:08:50

    Naja, was soll ich sagen, es hat funktioniert, dann hatte ich einen Fehler im Makro, warum auch immer, nun schmiert mir Excel ab, wie gerade schon beschrieben

    Betrifft: AW: Do Schleife mit Fehler
    von: Piet
    Geschrieben am: 08.04.2021 21:14:22

    Hallo

    wo genau schmiert Excel ab? In der Do Loop Schleife oder wenn du das PDF Makros startest?? Für heute mache ich Schluss. Viel Glück bei der Fehlersuche.

    mfg Piet

    Betrifft: AW: Do Schleife mit Fehler
    von: Steinert
    Geschrieben am: 08.04.2021 21:33:32

    Mit der Do loop schleife starte ich, ich sehe, es springt auch noch auf die Zelle, baer dann wird es nur noch schwarz/weiss

    Vielen Dank

    dann muss ich 400 pdf-Dokumente per Hand erstellen...

    Betrifft: AW: Do Schleife mit Fehler
    von: Piet
    Geschrieben am: 09.04.2021 10:10:16

    Hallo

    400 Dokumente von Hand erstellen?? NEIN Danke!

    Hast du die Do Loop Schleife mal durchlaufen lassen OHNE den PFD Code aufzurufen? Dann wissen wir wenigstens ob es an der Schleife oder am PDF Code liegt. Liegt es am PDF Code solltest du ihn einmal manuell mit Einzelschritt Anweisung starten. So könnten wir herausfinden ab welcher Stelle alles dunkel wird. Wenn die Kollegen wissen wo das Makro aussteigt weiss vielleicht einer die Lösung dafür. Einen Versuch das bei 400 Dokumenten zu klaeren ist es wert.

    mfg Piet

    Betrifft: AW: Do Schleife mit Fehler
    von: Steinert
    Geschrieben am: 09.04.2021 13:55:12

    Hallo, habe mir gestern noch die Datei auf meinem lokalen Rechner heruntergeladen und dann getestet. Lief problemlos. Das mit dem "Dunkel werden" scheint wohl ein Remote Desktop Problem zu sein. Habe es öfter bei einigen Excel-Tabellen, wenn ich auf dem entfernten Server arbeite. Das ist eine Serverfarm, ich greife via Browser und Citrix drauf zu und kann dann die Anwendungen starten.
    Vielen Dank
    Michael

    Betrifft: AW: Do Schleife mit Fehler
    von: Piet
    Geschrieben am: 08.04.2021 20:03:02

    Nachtrag - Bei Copy kann man die Zieladresse Ohne Paste direkt dahintersetzen. Das ist dir sicher noch nicht bekannt, oder??

    Betrifft: AW: Do Schleife mit Fehler
    von: Steinert
    Geschrieben am: 08.04.2021 21:05:42

    Hmm,

    es hat funktioniert, nun schmiert mir Excel regelmässig ab.

    das Makro PDFDatei kann ich ausführen.

    Jedoch sobal ich das Makro PDFListe ausführe, bekomme ich eine schwarze Excel-Liste mit weissen Balken.

    Ich arbeite auf einem Virt.Server vom MS. Vermute, den hat es mal wieder zerlegt.
    Oder hat es irgendetwas mit Blattschutz zu tun?