Nach Workbook.Close geht nix mehr
11.06.2013 17:14:41
Erich
Hi Tom,
nur noch mal sicherheitshalber die Voraussetzungen:
Im Hintergrund ist eine Mappe "H.xls" geöffnet, die in deinem Code bislang nicht vorkommt.
In der aktiven Mappe "A.xls" steht der Code, diese Mappe wird gedruckt, gespeichert und geschlossen.
Durch das Schließen der Mappe A.xls wird Mappe H.xls zur aktiven Mappe.
Nun dein Wunsch: Am Ende soll Sheets(1) von H.xls aktiv sein.
Und das Problem:
Wenn du im Code nach dem Close das erste Blatt aktivierst, geht das nicht,
denn die Anweisung wird gar nicht mehr ausgeführt.
Also: Du musst Sheets(1) der Mappe H.xls vor dem Close aktivieren.
Hier dein alter und ein geänderter Code:
Option Explicit
Private Sub ALTcmdDrucken_Click()
If MsgBox("Gelbes Blatt in Drucker eingelegt?", vbQuestion + vbYesNo, _
"Erinnerung!!") = vbYes Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Else
Exit Sub
End If
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"H:\AVOR-GT\08_Musterkarten\01_Nummern-Verlauf\" & "Nr" & _
Range("F4") & ".xlsx", FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Private Sub cmdDrucken_Click()
If MsgBox("Gelbes Blatt in Drucker eingelegt?", vbQuestion + vbYesNo, _
"Erinnerung!!") = vbYes Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Else
Exit Sub
End If
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"H:\AVOR-GT\08_Musterkarten\01_Nummern-Verlauf\" & "Nr" & _
Range("F4") & ".xlsx", FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
Workbooks(2).Sheets(1).Activate ' vor dem Close
Application.DisplayAlerts = True ' vor dem Close
ActiveWorkbook.Close
MsgBox "nach dem Close geht nix mehr..."
End Sub
Und hier noch was zum Testen - das Problem hatte ja gar nichts zu tun mit Drucken oder Speichern...
Man kann einfach sehen, dass mit dem Close die Prozedur endet:
Sub aaTest1()
Workbooks.Open "C:\temp\H.xls" ' Mappe im Hintergrund
Sheets(2).Select
ThisWorkbook.Activate ' Mappe mit dem Code
MsgBox ActiveWorkbook.Name & " / " & ActiveSheet.Name & " / " & Cells(1, 1)
ThisWorkbook.Close
MsgBox "nach dem Close geht nix mehr..."
ActiveWorkbook.Sheets(1).Activate ' wirkungslos
MsgBox ActiveWorkbook.Name & " / " & ActiveSheet.Name & " / " & Cells(1, 1)
End Sub
Sub aaTest2()
Workbooks.Open "C:\temp\H.xls" ' Mappe im Hintergrund
Sheets(2).Select
ThisWorkbook.Activate ' Mappe mit dem Code
MsgBox ActiveWorkbook.Name & " / " & ActiveSheet.Name & " / " & Cells(1, 1)
Workbooks(2).Sheets(1).Activate ' wirksam
ThisWorkbook.Close
MsgBox "nach dem Close geht nix mehr..."
MsgBox ActiveWorkbook.Name & " / " & ActiveSheet.Name & " / " & Cells(1, 1)
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich