Hallo Yildiz,
vorab erst mal ein Hinweis. Da sich dieser Code, denke ich, in einem allgemeinen Modul befindet, ist es immer angebracht bei jedem Verweis auf eine Range, immer auf das jeweilige Workbook und/oder Worksheet zu referenzieren. Wenn das nicht gatan wird, bezieht sich der Code immer auf das gerade aktive Workbook und Sheet. Sollte, was ich denke in deinem Fall, ausversehen mal ein anderes als das benoetigte Workbook oder Worksheet aktiv werden, dann bekommst du natuerlich einen Fehler, da der Code die benoetigten Infos nicht mehr findet.
Da ich denke, dass sich in deinem Beispiel alles auf dem Sheet "Proforma" abspielt, kann man hier wunderbar mit einer With Anweisung arbeiten, um unnoetige Schreibarbeit zu vermeiden. Beim With verweist man am Anfang auf das jeweilige Tabellenblatt (Sheet) und kann dann innerhalb der With Anweisung alle Range Verweise nur mit einem Punkt anfangen. Ich habe mal deinen Code dementsprechend angepasst und hoffe, dass es jetzt so funktioniert.
Wenn nicht, waere es angebracht, die Datei mal zum Testen zu haben. Aber teste erst mal den von mir angepassten Code.
Noch ein Hinweis: Schau dir mal im Netz an, warum man Select und Activate weitestgehend vermeiden sollte. Der Makro Rekorder zeichnet zwar so auf, ist aber eher unvorteilhaft.
So hier dein Code. Teste mal und lass mich wissen, ob ok.
Sub PDF_Speichern_unter()
Dim DateiName As String
With ThisWorkbook.Sheets("Proforma")
DateiName = .Range("K2") & .Range("K1") & ".pdf"
.Range("C9") = .Range("C9") + 1 'Rechnungsnummer 1 hochzählen
.Range("A1:F35").ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
End Sub
Gruss Tor
|