Makro zum speichern einer Tabelle als pdf
#1
Hallo zusammen,

ich habe mir für Excel ein Tool gebaut, mit dem ich Bestellungen erzeugen kann. Dabei trage ich in einer Tabelle alle notwendigen Daten ein. Diese werden dann in einer anderen Tabelle an den richtigen Stellen in der eigentichen Bestellung eingefügt.

jetzt zu meinem Anliegen.
Das Tabellenblatt mit den Bestelldetails soll unter einen Bestimten Netzwerkpfad mit einem Bestimmten Namen als pdf gespeichert werden.
Den Netzwerkpfad und den zu verwendenden Namen habe ich in jeweils einer Zelle stehen.
Bei bedarf soll der Ordner in dem gespeichert werden soll neu erstellt werden.

Hat da jemand ein Makro oder eine andere Lösung?

Vielen Dank schonmal.
Gruß Andy
Antworten Top
#2
Dafür gibt es die ExportAsFixedFormat-Methode des Worksheets:
https://learn.microsoft.com/de-de/office...ixedformat
Antworten Top
#3
Hallo EarlFred,

leider habe ich gar keine Ahnung von Makros. Was müsste ich da wie zusammen basteln?

Ich hab im Internet folgendes Makro gefunden:
Code:
Sub PDF()
Dim vntFile As Variant
vntFile = Application.GetSaveAsFilename(Range("A11114") & Range("A11121").Value & "\" & _
ActiveSheet.Range("A11118").Value & ".pdf", _
"PDF Dateien (*.pdf), *.pdf", Title:="Als PDF Speichern")
If vntFile <> False Then
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=vntFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
End Sub

Die erstellung des Dateinamens funktioniert so, wie ich das will. Den Ordner wählt er mir aber nicht richtig.
Ebenso weis ich auch noch nicht, was ich ändern muss, damit er mir das richtige Tabellenblatt verwendet.
Antworten Top
#4
Wie der Methodenname sagt: Du bekommst den FILENAME, nicht den
Code:
Option Explicit

Sub Export()
Dim ws As Worksheet

'Name des Worksheets hier anpassen:
Set ws = Worksheets("MeinWorkSheetName")

Call ws.ExportAsFixedFormat( _
                              Type:=xlTypePDF, _
                              Filename:=ws.Range("A11114").Value & ws.Range("A11121").Value & "\" & ws.Range("A11118").Value & ".pdf", _
                              Quality:=xlQualityStandard, _
                              IncludeDocProperties:=True, _
                              IgnorePrintAreas:=False, _
                              OpenAfterPublish:=False)
                       

End Sub
Zitat:Den Ordner wählt er mir aber nicht richtig.

Ob die Verkettung der Zellinhalte  ws.Range("A11114").Value & ws.Range("A11121").Value & "\" & ws.Range("A11118").Value & ".pdf" einen gültigen Pfad und Dateinamen ergibt, kann ich aber beim besten Willen nicht beurteilen. Das musst du dir bitte mal selbst in Ruhe anschauen. Vielleicht fehlt zwischen ws.Range("A11114").Value und ws.Range("A11121").Value noch ein Backslash?
Antworten Top
#5
Mit deinem Code bekomme ich den Fehler:

Laufzeitfehler `1004`:
Die Methode `Range`für das Objekt`_Worksheet`ist fehlgeschlagen
Antworten Top
#6
Ich nicht. Und nun?

Wie sieht dein Code jetzt aus? Welche Werte stehen in den Zellen?
Antworten Top
#7
Anbei eine Datei wobei Sie Ihre Datei als PDF speichern könnten.
Sie müssen nur den Dateipfad anpassen.
Vielleicht hilft Ihnen das weiter….wenn nicht einfach ignorieren 17
 
Beispiel:
.xlsm   PDF_per_Button_Speichern.xlsm (Größe: 17,53 KB / Downloads: 1)

*Habe die Datei aus dem Internet vor langer zeit, weiss leider nicht mehr die Quelle.

Danke
78
Niko
Antworten Top


Gehe zu:


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