Hallo,
ich habe ein kleines Problem mit dem Erstellen von mehreren PFD-Seiten aus unterschiedlichen Tabellenblätter. Je nach Erfüllung der Bedingung (If-Abfrage) wird eine PDF erstellt.
Sofern nur ein eine Tabelle angesprochen wird, gibt es keine Probleme mit der Erstellung. Dabei ist es egal, ob die Tabelle oder zwei Seiten hat. Die Formatierung/Range ist korrekt und das Makro läuft durch.
Sheets("DUZ").Select
Range("A1:Y52").Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\DUZ.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Aber soweit ich auf zwei oder mehr Tabellenblätter zugreife, gibt es Probleme:
Sheets(Array("Deckblatt", "Übersicht", "Tagebuch", "Ges", "Reisekosten", "DUZ")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Tagebuch_RZ_DUZ.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Wie kann ich entsprechend die Range unterbringen, sodass es evtl. problemlos klappt?
'Sheets("Deckblatt").Select --> Hochformat (1 Seite)
'Range("A1:H43").Select
'Sheets("Übersicht").Select --> Querformat (1 Seite)
'Range("A1:R35").Select
'Sheets("Tagebuch").Select --> Hochformat (6 Seiten)
'Range("A1:V146").Select
'Sheets("Ges").Select --> Hochformat (1 Seite)
'Range("A1:G43").Select
'Sheets("DUZ").Select --> Querformat (2 Seiten)
'Range("A1:Y52").Select
'Sheets("Reisekosten").Select --> Hochformat (1 Seite)
'Range("A1:N57").Select
Aktueller Fehlerhinweis: Anwendungs- oder objektdefinierter Fehler.
Ich hatte es auch mal wie folgt versucht, aber dann stimmt die Formatierung nicht (wenn es einzeln gespeichert wird, ist sie aber richtig). Außerdem wird dann beim Schreibschutz rumgemeckert (am Ende werden die Blätter wieder mit Schreibschutz versehen). Jedenfalls gibt es diese Probleme beim einzelnen nicht.
Sheets("DUZ").Select
Range("A1:Y52").Select
Sheets("Reisekosten").Select
Range("A1:N57").Select
Sheets(Array("Reisekosten", "DUZ")).Select
Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Reisekosten_DUZ.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Hat jemand eine Idee?
Gruß
Das heißt, dass das Tabellenblatt mit dem Namen, der in der Variable ws steht, nicht vorhanden ist. Einfach mal auf Debugggen klicken, dann mit der Maus über die Variable ws fahren und schauen was dann am Mauszeiger für ein Eintrag steht.
Bemerkung: Du hast ja gestern schon geschrieben, dass du ein "Warenwirtschaftssystem" bauen willst. Ich glaube, dass das Vorhaben sportlich ist. ggf ersteinmal noch etwas die Grundlagen von Excel VBA aneignen. oder willst Du das "learning by doing" machen? Das holt einen dann natürlich irgendwann ein. Ich würde Dir raten, Dich mehr an die Objekthierarchie zu halten. Also immer mindestens vom Workbook ausgehen. Dann unbedingt auf Fehlerbehandlungen achten. gerade, wenn man ScreenUpdatings, oder DisplayAlerts ausschaltet und zwischendurch die Prozedur aussteigt, ist das halt für die Applikation gesetzt und eingestellt und gilt dann für den Rest der Session. usw usw. Auch Kenntnisse zum Debuggen, schrittweisen Ausführen, etc sollte man kennen, wenn man ein Warenwirtschaftssystem bauen will. Dies wirklich nur als Tipp - gutes Gelingen weiterhin