Ich programmiere ein Frontend zur Datensichtung.
Beim Öffnen wird ein Tabellenblatt mit den Daten aus einer passwortgeschützten Datei kopiert. Über Listboxen werden Bedingungen ausgewählt, die Daten in einer Listbox angezeigt. - Funktioniert einwandfrei!
Man kann per Button eine Liste ausdrucken.
Dazu wird ein Tabellenblatt "Druckspeicher" erzeugt, und die benötigten Daten in den Druckspeicher kopiert und formatiert.
Dann rufe ich über
--------------------
Sub Drucken()
'Drucken mit Druckermenü:
UserForm1.Hide 'blendet Applikation vor Druckmenü aus
Application.Dialogs(xlDialogPrint).Show '--- Drucker auswählen
UserForm1.Show 'zeigt Applikation wieder
End Sub
--------------------
Druckermenü auf. Auswahl, Vorschau und Drucken funktionieren. (Außer auf pdf-Creator).
Danach soll das Blatt Druckspeicher gelöscht werden. Das soll über
--------------------
Sub BlattLöschen(Löschblatt)
Application.DisplayAlerts = False
Worksheets(Löschblatt).Delete
MsgBox ("Blatt " & Löschblatt & " gelöscht")
'####)
Application.DisplayAlerts = True
End Sub
--------------------
nach Aufruf von BlattLöschen("Druckspeicher") erreicht werden.
Hier passiert vorerst nichts, wodurch ein erneuter Druck zu einem Fehler führt weil das Blatt Druckspeicher hinzugefügt werden soll, jedoch schon existiert. Als erste Maßnahme fragt die Sub, die den Druckspeicher erstellt und füllt, ob das Blatt existiert und löscht es dann über BlattLöschen("Druckspeicher"), was hier direkt funktioniert.
Nach Beendigung des Frontends, also auch nach Schießen der Userform, fällt Excel dann ein dass da noch ein Blatt "Druckspeicher" vorhanden ist, hierzu ein Löschauftrag vorliegt, und löscht dann.
Hat jemand eine Idee warum das Löschen nicht direkt erfolt, obwohl der Aufruf der beiden Subs im Programm direkt hintereinander steht:
--------------------
...
BlattLöschen("Druckspeicher")
...
--------------------
Im Voraus vielen Dank für Eure Hilfe!
Ralf