PDF per Vba in gleichen Ordner wie Datei kopieren
#1
Hallo,

ich möchte gerne eine Excel Tabelle per VBA in PDF ausgeben, dies funktioniert mit diesem Code auch soweit.


Code:
Sub PDFDatei()

   'Tabelle als PDF speichern
   Dim DateiName As String
   DateiPfad = ActiveWorkbook.Path
   DateiName = DateiPfad & ThisWorkbook.Name & ".pdf"
   ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, OpenAfterPublish:=True

End Sub


Allerdings würde ich die Datei gerne in dem selben Ordner wie die Excel Datei speichern. Momentan ist wird die PDF noch im Ordner davor abgelegt. Einen Haken gibt es aber noch an der Sache, die Excel Datei soll einen variablen Namen besitzen, also kann frei benannt werden. Habt ihr irgendeine Idee wie das funktionieren könnte?

Ich freue mich über Hilfe!

Gruß Lukas
Top
#2
Hallöchen,

Zitat:Allerdings würde ich die Datei gerne in dem selben Ordner wie die Excel Datei speichern.
Momentan ist wird die PDF noch im Ordner davor abgelegt. 

ich sehe Dein Problem nicht. Die PDF-Datei hat doch eine andere Endung als irgendeine Exceldatei.
Warum sollte das also nicht möglich sein?

Zitat:die Excel Datei soll einen variablen Namen besitzen

In VBA gibt es die Möglichkeit, die Datei mit SaveAs ... zu speichern. Du arbeitest doch mit VBA.
Dann sollte auch das kein unlösbares Problem sein.
Oder habe ich was falsch verstanden?
Top
#3
Hallo, :19:

hier mal drei Möglichkeiten: :21:


Code:
Option Explicit
Sub Main_1()
    Dim DateiName As String
    DateiName = ThisWorkbook.Path & Application.PathSeparator & Left(ThisWorkbook.Name, _
        (InStrRev(ThisWorkbook.Name, ".") - 1))
    ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:=DateiName, _
        Quality:=xlQualityStandard, OpenAfterPublish:=True
End Sub
Sub Main_2()
    Dim DateiName As String
    ' Dateiname aus Tabelle1 - Zelle A1
    DateiName = ThisWorkbook.Path & Application.PathSeparator & _
        ThisWorkbook.Worksheets("Tabelle1").Range("A1").Value
    ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:=DateiName, _
        Quality:=xlQualityStandard, OpenAfterPublish:=True
End Sub
Sub Main_3()
    Dim DateiName As String
    ' Dateiname mit InpuBox abfragen
    DateiName = InputBox("Dateiname", "Name", "Vorschlag")
    If Not StrPtr(DateiName) = 0 Then
        DateiName = ThisWorkbook.Path & Application.PathSeparator & DateiName
        ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:=DateiName, _
            Quality:=xlQualityStandard, OpenAfterPublish:=True
    End If
End Sub

Die Exceldatei muss natürlich einmal gespeichert worden sein.
Top
#4
Vielen Dank für Eure Antworten!

So wie Case es in seinem dritten Beispiel gezeigt hat gefällt es mir am besten. Es funktioniert auch einwandfrei, genauso habe ich mir das vorgestellt. Besten Dank schonmal dafür Smile

Eine Frage hätte ich allerdings noch. Ist es möglich in dem Vorschlagsfeld von der Inputbox, den aktuellen Dateinamen der Exceldatei anzeigen zu lassen?
Ist das überhaupt realisierbar? Wenn es nicht funktioniert ist es auch nicht so schlimm, ist sowieso nur Spielerei.

Gruß Lukas
Top
#5
Hallo, :19:

das geht dann so: :21:


Code:
Option Explicit
Sub Main_3()
    Dim DateiName As String
    ' Dateiname mit InpuBox abfragen
    DateiName = InputBox("Dateiname", "Name", Left(ThisWorkbook.Name, _
        (InStrRev(ThisWorkbook.Name, ".") - 1)))
    If Not StrPtr(DateiName) = 0 Then
        DateiName = ThisWorkbook.Path & Application.PathSeparator & DateiName
        ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:=DateiName, _
            Quality:=xlQualityStandard, OpenAfterPublish:=True
    End If
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • lukas-2000
Top
#6
Hallo Case,

genauso habe ich mir das vorgstellt, vielen Dank für deine Hillfe!

Damit wäre das Thema abgeschlossen. :19:

Einen schönen Tag noch.

MfG Lukas
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste