ich habe mir selber eine kleine Rechnungsverwaltung erstellt und bis auf diese eine Sache läuft alles gut.
Wenn eine Rechnung geschrieben ist kommt der Druck. Hierbei wird nicht nur das Blatt gedruckt, sondern soll im Hintergrund als PDF und als Excel-Datei, aber ohne die Verknüpfungen/Formeln, dafür aber mit Inhaltswerten und Formaten, sowie der Kopfgrafik, in einen vorgegebenen Pfad gespeichert werden.
Die Excel-Datei wird auch entsprechend gespeichert. In der Vorschau sieht man auch alle Daten und das die Rechnung genau so aussieht, wie sie aussehen soll. Beim Öffnen der Datei (um daraus zum Beispiel eine Mahnung zu machen) erscheint folgende Meldung:
Das Dateiformat und die Dateierweiterung passen nicht zueinander. Möglicherweise ist die Datei beschädigt.
Nach dem Öffnen sind die eingetragenen Daten weg.
Ich habe alles Mögliche probiert, von anderen Excel-Formaten (xlsx, xls usw.), bis hin zum Makrorekorder...aber der bringt mir nicht die erhoffte Erlösung.
Hier noch mein Code:
Private Sub btnRechnungDrucken_Click()
' Rechnung drucken
bez = ActiveSheet.Range("A1").Value
If bez = "" Then
Exit Sub
MsgBox ("Bitte zuerst die ganzen Daten erfassen. Ich kann nicht ohne Kundendaten drucken!")
Else
'jetzt eintrag in mahnwesentabelle
Eintrag_Mahnwesen_REKopie '_REKopie
'Zahlungsziele_festlegen
frmPrinter.Show
Blatt = "REKopie"
ActiveSheet.Range("A1").Select
' Aufruf der Druckroutine
Drucken Blatt, Bereich
MsgBox ("Die Rechnung wird jetzt als PDF gesichert in:" & Chr(13) & _
"Ordner: ABLAGE_RECHNUNGEN" & Chr(13) & _
"mit der Bezeichnung: Rechnungsnummer + Name + Datum")
'pdf der Rechnungskopie erzeugen
Range("A1:G37").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\PV-Reinigung\ABLAGE_RECHNUNGEN\ " & ActiveSheet.Range("A1").Value, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End If
XLSRechnungAblage
Sheets("Rechnung").Activate
rechnung_neu
Sheets("Menü").Select
End Sub
Sub XLSRechnungAblage()
'
' XLSRechnungAblage Makro
Sheets("Rechnung").Select
Range("A1:G38").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs "c:\PV-REINIGUNG\ABLAGE_RECHNUNGEN\" & Range("a1").Value & ".xlsx"
Windows("2018_PV-Reinigung-Rechnungserstellung.xls").Activate
Sheets("Rechnung").Select
Range("a5").Select
End Sub
Für jegliche Anregung bin ich dankbar