Office-Fragen.de

Normale Version: Timer in Makro um Bildaufbau zu gewährleisten
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe das Thema mit der Schleife letzten klären können.

Jetzt habe ich ein weiteres Problem.

Meine Schliefe soll wie folgt funktionieren:
- Bei jeder Schleife wird ein PDF generiert und an einem vordefinierte Ort abgelegt (das funktioniert)
- Jedes PDF hat in einer Zelle einen Link um einen anderen Zellenwert als QR Code anzuzeigen (das funktioniert, wenn ich die Schleife NICHT laufen lasse)
  hier der Code, welcher in der Zelle zum QR Code Aufbau steht: 
   =BILD("https://quickchart.io/qr?text="URLCODIEREN(B26))

- da ich mir dachte, dass das abspeichern als PDF schneller sein könnte, als der QR code zu erstellen, habe ich nen timer eingebaut. Das bringt mir auch nicht die Lösung; selbst nicht, wenn ich 10 Sekunden Timer einbaue.

Und hier mein Quellcode:

Sub WR code list()

    Application.ScreenUpdating = False

    Dim PE As Integer
    Dim PS As Integer
   
    PE = Range("O33") + 13
   
    For PS = 14 To PE

    Cells(PS, 17).Copy
    Cells(10, 16).PasteSpecial xlPasteValues
   
    Application.Wait (Now + TimeValue("0:00:10"))
   
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:= _
        Range("P6") & "\" & Range("P10") & "_" & Range("P7") & "_" & Range("P8") & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
   
   
    Next
   
    Application.ScreenUpdating = False
   
End Sub
Hi,

mein Excel kennt noch kein BILD(), daher kann ich es nicht testen. Aber ich vermute mal stark, dass dein Application.ScreenUpdating = False dafür sorgt, dass dein Bild NICHT aktualisiert wird. Falls ein Entfernen dieses Befehls noch nicht hilft, würde ich statt mit Application.Wait (was nichts anderes macht als Excel komplett anzuhalten) eher mit DoEvents experimentieren.
danke Helmut,

habe ich direkt ausprobiert.

- Wenn ich Screenupdate und Wait rausnehme, funktioniert es nicht zu 100%; aber schon mal ein Schritt weiter
- Wenn ich NUR Wait rausnehme, funktioniert es garnicht
- Wenn ich NUR Screenupdate rausnehme funktioniert es wieder garnicht


mit der DoEvent Funktion muss ich mal rumspielen; diese kenne ich noch nicht.
Ich halte Dich uf dem laufenden
Also...

ich bin jetzt da nur zufällig draufgekommen...

wenn ich das Makro ein 2. Mal habe durchlaufen lassen, hat es funktioniert...

Jetzt habe ich die Schliefe einfach 2 Mal reingemacht und es funktioniert

Warum... ist mir schleierhaft, aber das Ziel ist erreicht. Wenn hier jemand noch ein Kommentar hat, freue ich mich, dann lerne ich was dazu.

danke

Sub WR code list()

    Dim PE As Integer
    Dim PS As Integer
 
    PE = Range("O33") + 13
 
    For PS = 14 To PE

    Cells(PS, 17).Copy
    Cells(10, 16).PasteSpecial xlPasteValues
 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:= _
        Range("P6") & "\" & Range("P10") & "_" & Range("P7") & "_" & Range("P8") & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
 
    Next

PE = Range("O33") + 13
 
    For PS = 14 To PE

    Cells(PS, 17).Copy
    Cells(10, 16).PasteSpecial xlPasteValues
 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:= _
        Range("P6") & "\" & Range("P10") & "_" & Range("P7") & "_" & Range("P8") & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
 
    Next
 
End Sub