VBA - Makro verhaspelt sich

MickH74

Lieutenant
Registriert
Apr. 2009
Beiträge
591
Hallo liebes Forum,

ich habe eine Frage zu einem VBA-Skript.

Der Button "Start" in der Excel-Datei im Anhang zeigt verschiedene Blattbereiche in einer Userform an.

Das funktioniert über Zwischenschritte, bei denen zunächst ein Chart aus dem Bereich erstellt wird, welches als .jpg gespeichert und anschließend in die Userform geladen wird. Dafür habe ich im Netz einen Code gefunden, den ich angepasst habe.

Beim Testen taucht selten, aber hin und wieder dieser Fehler auf:
Screenshot 2021-04-03 202724.jpg


Nach etwas Debugging sieht es für mich so aus, als wäre die .Select-Methode manchmal nicht schnell genug mit dem Auswählen, so dass der darauf folgende Code, der mit der Auswahl arbeitet, einen Fehler ausgibt.

Die einzige Lösung, die ich dazu gefunden habe ist, nach dem .Select eine Sekunde Pause über Application.Wait einzubauen.
Den Code-Teil habe ich in der Datei in der Sub UserForm_Initialize() hervorgehoben. Damit taucht der Fehler nicht mehr auf. Leider verzögert das aber die Darstellung der Userform um eine Sekunde pro Seite.

Ich arbeite normalerweise ohne .Select. Aber wenn ich versuche, diesen Code ohne .Select zu schreiben, gibt es immer Fehler.

Könnte mir jemand helfen, dass .Select da raus zu bekommen oder hat eine eine andere Idee, wie man auf die Pause mit Application.Wait verzichten kann, das Skript aber trotzdem zuverlässig funktioniert?

Danke und Gruß,
Mick
 

Anhänge

  • UserFormTest.zip
    30,2 KB · Aufrufe: 204
Ich würde die Cut Funktion einkapseln so das sie es bei einem Fehler direkt nochmal probiert bis es klappt oder nach x mal stopt und einen Fehler meldet. Nicht optimal aber reduziert das Delay auf ein Minimum.
 
  • Gefällt mir
Reaktionen: BAGZZlash
Genau. Aus dem Bauch heraus etwa so, siehe anbei.
 

Anhänge

  • UserFormTest.zip
    30,9 KB · Aufrufe: 199
Zurück
Oben