Stehe auf dem Schlauch und wäre um ein Tipp für folgendes Problem dankbar:
Ich habe zwei Workbooks offen. Per VBA schliesse ich das Workbook1 und möchte dann
ins Workbook2 erstes Blatt springen.
Besten Dank und Gruss
TOM
Private Sub Workbook_Activate()
Worksheets(1).Activate
End Sub
Gruß Matthias
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
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Danach erscheint das Workbook1 und das letzte Blatt ist aktiv.
Private Sub cmdDrucken_Click()
dim wkbOld as Workbook
set wkbOld = Activeworkbook
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
wkbold.activate
sheets(1).activate
End Sub
die wkbOld-Sache kann eigentlich raus (du bist ja im richtigen Workbook ...), ich habe das aber immer gerne im Code stehen da es so beim Lesen nachvollziehbarer ist wo der Code sich befindet.
Sub aaaaa()
Dim wkbOld As Workbook
Set wkbOld = ActiveWorkbook
Application.DisplayAlerts = False
' ... restl Code spielt hier keine Rolle
ActiveWorkbook.Close
Application.DisplayAlerts = True
wkbOld.Activate
Sheets(1).Activate
End Sub
Das kannn nicht funktionieren. wkbOld = ActiveWorkbook wird geschlossen und kann danach nicht aktiviert werden...
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
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
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("Musterkartenlauf.xls").Sheets(1).Activate
Workbooks("Nr" & Range("F4") & ".xlsx").Close
Application.DisplayAlerts = True
End Sub
Gruss und frohes schaffen