1.6k Aufrufe
Gefragt in Tabellenkalkulation von czerno Einsteiger_in (44 Punkte)

Hallo liebe Community,

ich benötige eure Hilfe mal....

Ich habe folgenden Code geschrieben:

Sub ABRECHNUNGPDF()

Dim SpeicherName As String
Dim Speicherpfad As String

Speicherpfad = "c:\EXPORTPDF\"

SpeicherName = ActiveSheet.Range("A72") & "_" & Range("E72") & ".pdf"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SpeicherName, Quality:= _
xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
        
End Sub

Mein Ziel war es, dass aktuelle Tabellenblatt als PDF gespeichert wird unter C:\ExportPdf.

Der Dateiname soll aus A72 und E72 gebildet werden. Leider erzeugt er keine PDF-Dateien und ich musste feststellen, dass ich einfach zu blöd bin.

Kann mir einer Helfen wo ich meinen Denkfehler habe.

Grüße und Dankeeeeeeeeeee

Czerno

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

du musst den Pfad beim Speichern auch mit angeben - es muss also heißen

Filename:=Speicherpfad & SpeicherName

Außerdem solltest du korrekt referenzieren - hier

ActiveSheet.Range("A72") & "_" & Range("E72") & ".pdf"

verwendest du einmal ActiveSheet und einmal lässt du ActiveSheet weg - besser in beiden Fällen ActiveSheet davor setzen oder in beiden Fällen weglassen. Wenn man es weglässt, bezieht sich der Code IMMER auf das aktive Tabellenblatt.

Bis später, Karin

0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)
Der Pfad muss nicht mit angegeben werden. Wenn er weggelassen wird (was du getan hast), schreibt Excel die Ausgabe in das derzeit aktuelle Verzeichnis. Wahrscheinlich erzeugt das Makro die Datei, du findest sie nur nicht im gewünschten Verzeichnis.

Gruß Flupo
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Zitat: "Wahrscheinlich erzeugt das Makro die Datei, du findest sie nur nicht im gewünschten Verzeichnis."

Und genau aus diesem Grund muss der Pfad mit angegeben werden - DAMIT die Datei im gewünschten Verzeichnis landet...

Bis später, Karin
0 Punkte
Beantwortet von czerno Einsteiger_in (44 Punkte)

Hallo,

ich habe Dank Karin´s Hilfe den Code nun bearbeitet und alles schon hat eigentlich super funktioniert.

Ich habe nun ein neues Modul aufgebaut mit folgenden Quelltexten:

Code I:

Sub ABRECHNUNGPDF()

'Speichert die Arechnung unter c:/ExportPDF
Const DateiPfad = "c:\EXPORTPDF\"
Dim SpeicherName As String
Dim Speicherpfad As String

'Pfad
Speicherpfad = "c:\EXPORTPDF\"


SpeicherName = ActiveSheet.Range("A72") & "_" & ActiveSheet.Range("E72") & ".pdf"

Sheets("Betriebskostenabrechnung").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Speicherpfad & SpeicherName, Quality:= _
xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
        
End Sub

Code II:

Sub DruckenBereichPDFDateien()
    Dim intZaehler As Integer
    If IsNumeric(Range("J3")) And IsNumeric(Range("K3")) Then
        For intZaehler = Range("J3") To Range("K3")
        Range("J2") = intZaehler
            ActiveSheet.Calculate
            ABRECHNUNGPDF
        Next intZaehler
        End If
End Sub

Den zweiten Code führe ich nun aus. Das Makro trägt nun automatisch die Zahlen nacheinander ein, berechnet und dann den Code ABRECHNUNGPDF  aus. 5x funktioniert dies. Ab der 6 Abrechnung kommt der Fehler:
Laufzeitfehler 1004

Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim speichern ist ein Fehler aufgetreten.

Ich habe aber keine Ahnung wie ich das korrekt ausführen kann. In meinen Muster ist die Schleife von 1-17 und bei dem 6 kommt der Fehler. Die ersten 5 werden komplett korrekt ausgeführt.

Danke vorab! und Grüsse

Czerno

http://supportnet.de/forum/2514590/vba-eintragung-wert-in-zelle-berechnen-und-drucken

...