Blatt löschen nach Drucken funktioniert nicht

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox MsgBox
Bild

Betrifft: Blatt löschen nach Drucken funktioniert nicht
von: rschmid
Geschrieben am: 09.10.2015 00:33:43

Hallo an Alle!
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:
--------------------
...
Drucken
BlattLöschen("Druckspeicher")
...
--------------------
Im Voraus vielen Dank für Eure Hilfe!
Ralf

Bild

Betrifft: AW: Blatt löschen nach Drucken funktioniert nicht
von: Tino
Geschrieben am: 09.10.2015 08:53:14
Hallo,
kannst Du ein Bsp. hochladen wo man dies nachvollziehen kann?
Gruß Tino

Bild

Betrifft: AW: Blatt löschen nach Drucken funktioniert nicht
von: rschmid
Geschrieben am: 09.10.2015 10:57:55
Dazu muss ich ein paar Subs entnehmen und anpassen.
Der gesamte Code wäre zu lang und einige Daten unterliegen dem Datenschutz.
...folgt in Kürze.
Vielen Dank schon mal dafür!
Ralf

Bild

Betrifft: Problem muss aber bestehen bleiben oT.
von: Tino
Geschrieben am: 09.10.2015 10:59:31


Bild

Betrifft: AW: Problem muss aber bestehen bleiben oT.
von: rschmid
Geschrieben am: 09.10.2015 14:30:02
Die Datei habe ich hochgeladen. Ihr findet sie unter:
https://www.herber.de/bbs/user/100686.xlsm
Die Befehle zum Laden der Daten habe ich "wegkommentiert", dafür habe ich ein Blatt mit Daten schon angehängt. Das macht die Sache einfacher, da sonst extra ein Laufwerk angelegt oder der Pfad geändert werden müsste. Das Laden funktionierte ja.
Um den Effekt zu sehen, einfach auf "Liste drucken", im Druckerfenster auf "Vorschau", schließen.
Jetzt sollte das Blatt Druckspeicher verschwinden - tut es aber nicht!!!
Wegen der Änderung in der Druckroutine wird es bei erneutem Klick vor dem erneuten Anlegen gelöscht.
Nach dem Beenden seht Ihr dass der Druckspeicher dann erst gelöscht wird.
Stört Euch nicht an den vielen Msg-Boxen, sie dienen der Fehlersuche.
Viel Erfolg und im Voraus vielen Dank!
Ralf

Bild

Betrifft: AW: Problem muss aber bestehen bleiben oT.
von: Tino
Geschrieben am: 10.10.2015 08:25:15
Hallo,
liegt wohl daran das dein Code durchs erneute aktivieren der UserForm nicht in die Sub zurückkehrt.
Du solltest in der Sub Drucken die Zeilen UserForm1.Hide und UserForm1.Show
bereits in Sub ListeDruckenButton einbauen.
In etwa so

Private Sub ListeDruckenButton_Click()
    UserForm1.Hide
    ListendruckGenerieren
    UserForm1.Show 
End Sub

Gruß Tino

Bild

Betrifft: AW: Problem muss aber bestehen bleiben oT.
von: rschmid
Geschrieben am: 11.10.2015 11:30:00
Hallo Tino,
vielen Dank für den Tip!
Jetzt funktioniert es so wie es soll!
Danke, und noch ein schönes Wochenende!
Gruß Ralf

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Blatt löschen nach Drucken funktioniert nicht"