Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: .pdf in bestehenden Ordner speichern

.pdf in bestehenden Ordner speichern
30.01.2020 19:32:02
Stéphane
Hallo
Ich habe ein Excel Sheet in dem ich verschiedene Daten von verschiedenen Personen erfasse. Mit diesen Angaben wird dann nach Drücken des Buttons "Registrieren" ein Formular mit den persönlichen Angaben erstellt und ausgedruckt. Die Daten werden dann auf verschiedene weitere Tabellen verteilt. Mit diesen Angaben werden dann zu einem späteren Zeitpunkt Rechnungen für die jeweils erfassten Personen erstellt.
Im Vorfeld habe ich in meinem PC den Pfad/Ordner "C:\Dokumente\Kundendatei" über den Filemanager/Explorer erstellt.
Nun möchte ich,
1) dass für jeden erfassten Teilnehmer jeweils ein Ordner mit dem jeweiligen Namen der angemeldeten Person unter diesem Verzeichnis erstellt werden (der Name der jeweiligen Person wird aus einer einer Zelle im selben Sheet (z.B. A2) entnommen.
2) In diesen Ordner sei dann das Anmeldeformular als .pdf zu speichern
3) Die zukünftigen Rechnungen sollen dann ebenfalls in diesen Ordner als .pdf gespeichert werden (die Rechnungen werden auf einem anderen Tabellenblatt im selben Workbook erstellt.
Geht das?
Ich hänge Euch mein Makro als .xls an diesen Post - ich habe bereits versucht, den Makro Code zur Speicherung der .pdf Datei zu schreiben - erhalte jedoch immer einen Fehlercode. Deshalb habe ich diese Zeilen mit ' deaktiviert.
Ich wäre froh, wenn ihr mir helfen könntet.
Besten Dank
Stéphane
Userbild
https://www.herber.de/bbs/user/134863.xlsx
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .pdf in bestehenden Ordner speichern
30.01.2020 21:22:08
Matze
Guten Abend
so wie ich das sehe setzt du im vorherigen "With" das "obj_ws_quelle" auf Nothing, somit ist die "With-Blockvariable" leer.
AW: .pdf in bestehenden Ordner speichern
31.01.2020 17:28:30
Stéphane
Hallo Matze, Danke für Deinen Tipp - ich Deinen Ratschlag umgesetzt. Nun speichert es die Datei als .pdf - aber irgendwo unter C:\Dokumente.
Meine Idee wäre es:
ws.ExportAsFixedFormat xlTypePDF, ws.Range("ag33").Text & "_" & ws.Range("ag32").Text 'Zelle ag33 beinhaltet den Speicherpfad, welcher unter Cockpit genannt wird, ag32 den Namen des Dokumentes.
In der Zelle ag33 steht: c:\Dokumente\Kundendatei (diesen Order habe ich in C: so erstellt) und in der Zelle ag32 steht: M00_0.000_Vorname und Nachname.
Ich habe das Makro in ein leeres Blatt kopiert und hänge es hier an:
https://www.herber.de/bbs/user/134881.xlsm
Das Speichern funktioniert als. pdf unter C:\Dokumente und das Dokument selber erhält neu den Namen: KundendateiM00_0.000_Vorname und Nachname, was nicht gewollt ist. Was mache ich hier falsch? Kannst Du mir nochmals weiterhelfen? Besten Dank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

.pdf in bestehenden Ordner speichern


Schritt-für-Schritt-Anleitung

Um ein Excel-Makro zu erstellen, das ein PDF-Dokument in einem bestehenden Ordner speichert, folge diesen Schritten:

  1. Ordner erstellen: Stelle sicher, dass der Ordner "C:\Dokumente\Kundendatei" bereits existiert. Du kannst dies im Windows Explorer überprüfen.

  2. Makro öffnen: Öffne Excel und gehe zu "Entwicklertools" > "Visual Basic", um den VBA-Editor zu starten.

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", wähle "Einfügen" und dann "Modul".

  4. VBA-Code eingeben: Füge den folgenden Code in das Modul ein:

    Sub SpeichernAlsPDF()
       Dim ws As Worksheet
       Dim TeilnehmerName As String
       Dim SpeicherPfad As String
    
       Set ws = ThisWorkbook.Sheets("DeinTabellenblatt") ' Ersetze mit dem Namen deines Tabellenblatts
       TeilnehmerName = ws.Range("A2").Value ' Name aus Zelle A2
       SpeicherPfad = "C:\Dokumente\Kundendatei\" & TeilnehmerName & "\"
    
       ' Prüfen, ob der Ordner existiert, wenn nicht, erstellen
       If Dir(SpeicherPfad, vbDirectory) = "" Then
           MkDir SpeicherPfad
       End If
    
       ' PDF speichern
       ws.ExportAsFixedFormat xlTypePDF, SpeicherPfad & "Anmeldeformular_" & TeilnehmerName & ".pdf"
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle "SpeichernAlsPDF" aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: Ordner nicht gefunden: Überprüfe, ob der Pfad korrekt ist und der Ordner tatsächlich existiert. Stelle sicher, dass du die richtigen Berechtigungen hast, um dort zu speichern.

  • Fehler: Makro funktioniert nicht: Achte darauf, dass du das Makro in einem Arbeitsblatt ausführst, das die entsprechenden Zellen (z.B. A2) enthält.


Alternative Methoden

Eine alternative Methode ist die Verwendung von Excel VBA, um direkt den Speicherpfad auszuwählen. Dies kann durch den Einsatz eines Dialogfeldes geschehen:

Sub SpeichernAlsPDFMitDialog()
    Dim ws As Worksheet
    Dim SpeicherPfad As Variant

    Set ws = ThisWorkbook.Sheets("DeinTabellenblatt") ' Ersetze mit dem Namen deines Tabellenblatts

    ' Speicherpfad auswählen
    SpeicherPfad = Application.GetSaveAsFilename(FileFilter:="PDF-Dateien (*.pdf), *.pdf", Title:="Speichern als PDF")

    If SpeicherPfad <> False Then
        ws.ExportAsFixedFormat xlTypePDF, SpeicherPfad
    End If
End Sub

Praktische Beispiele

Angenommen, du möchtest die Rechnungen für Teilnehmer speichern. Du kannst den gleichen Code verwenden, um Rechnungen in den entsprechenden Ordnern zu speichern. Ändere einfach den Namen des PDFs, das du speicherst, und verwende das entsprechende Arbeitsblatt.

Sub SpeichernRechnungAlsPDF()
    Dim wsRechnung As Worksheet
    Dim TeilnehmerName As String
    Dim SpeicherPfad As String

    Set wsRechnung = ThisWorkbook.Sheets("Rechnungen") ' Tabellenblatt für Rechnungen
    TeilnehmerName = wsRechnung.Range("A2").Value ' Name des Teilnehmers
    SpeicherPfad = "C:\Dokumente\Kundendatei\" & TeilnehmerName & "\"

    If Dir(SpeicherPfad, vbDirectory) = "" Then
        MkDir SpeicherPfad
    End If

    wsRechnung.ExportAsFixedFormat xlTypePDF, SpeicherPfad & "Rechnung_" & TeilnehmerName & ".pdf"
End Sub

Tipps für Profis

  • Automatisierung: Du kannst die oben genannten Makros in ein größeres Automatisierungsskript integrieren, das sowohl die Anmeldeformulare als auch die Rechnungen speichert.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein Makro robust ist und bei unerwarteten Situationen nicht abstürzt.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das PDF im richtigen Ordner gespeichert wird?
Überprüfe den Code auf den korrekten Pfad und stelle sicher, dass der Ordner existiert, bevor du das PDF speicherst.

2. Funktioniert dieses Makro in allen Excel-Versionen?
Ja, diese Makros sollten in Excel 2010 und höheren Versionen ohne Probleme funktionieren, solange die Entwicklertools aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige