Hallo ihr Lieben
Ich habe mal wieder eine Frage zu VBA. Der untenstehende Code soll mehrere Dokumente speichern und drucken, bis eine Zelle leer ist. Soweit so gut. Das klappt. Was ich jedoch nicht hinkriege, ist, dass er mir danach alle Dokumente bis auf "Analysedaten" und "Kunden" wieder schliesst. Also bis "Loop" stimmt alles und funktioniert, aber danach nicht mehr. Oder müsste ich das Dokumenten-Schliessen vor dem Loop hinnehmen? Wohl kaum, weil dann schliesst er mir immer wieder das offene Dokument anstatt am Schluss alle zu löschen.
Der VBA "Schliessen" in sich (ohne das vorher) würde funktionieren, wenn ich das *Or wkb.Name = "Kunden.xlsx"* rausnehme und dann im Anschluss sage, er muss "Kunden.xlsl" wieder öffnen.
Sub Schliessen
Dim wkb As Workbook
For Each wkb In Workbooks
If Not wkb.Name = "2_Analysedaten_Frühling.xlsm" Then
wkb.Close savechanges:=False
End If
Next wkb
'
Workbooks.Open "D:\WKS\1_Grunddaten\1_D_Kunden.xlsx"
In Kombination mit dem hier funktioniert es aber nicht:
Sub Ganzer_Tag_S1_Speichern_Drucken()
'
Do
If ActiveCell.Offset(0, 0) <> "" Then
ActiveCell.Copy
Workbooks.Open "Rapport1.xlsx"
End If
'
Range("BQ11").PasteSpecial
Range("BR11").Select
Selection.Copy
Range("BQ11").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'
Dim Kanton As String
Dim KdNr As String
Dim Datum As String
Dim Name As String
Kanton = ActiveSheet.Range("BM1").Text
KdNr = ActiveSheet.Range("BQ11").Text
Datum = ActiveSheet.Range("X28")
Name = ActiveSheet.Range("L5")
ActiveWorkbook.SaveAs Filename:="D:\WKS\2_Aktuelles Jahr\Rapporte\Kundenrapporte\" & Kanton & "_" & Format(Datum, "yymmdd") & "_" & Format(KdNr, "000") & "_" & Name & ".xls"
ActiveSheet.ExportAsFixedFormat Type:=TypePDF, Quality:=Qualitylow, From:=1, To:=1, Filename:="D:\WKS\2_Aktuelles Jahr\Rapporte\Kundenrapporte\" & Kanton & "_" & Format(Datum, "yymmdd") & "_" & Format(KdNr, "000") & "_" & Name & ".pdf"
'
'ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
'
Workbooks.Open "Analysedaten.xlsm"
'
Else
Exit Sub
'
End If
'
ActiveCell.Offset(1, 0).Select
'
Loop
'
Dim wkb As Workbook
For Each wkb In Workbooks
If Not wkb.Name = "Analysedaten.xlsm" Or wkb.Name = "Kunden.xlsm" Then
wkb.Close savechanges:=False
End If
Next wkb
'
Workbooks.Open "D:\WKS\2_Aktuelles Jahr\Rapporte\2_Analysedaten_Frühling.xlsm"
'
End Sub
Kann mir da jemand helfen? Also:
- Warum schliesst er mir die Dokumente nicht, wenn ich das Makro starte?
-Wie kann ich alle Dokumente schliessen BIS AUF "Kunden.xlsx" und "Analysedaten.xlsm"?
Danke im Voraus für eure Antworten!