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

Forumthread: Mit VBA ein PDF über Tabellenblatt öffnen

Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 10:15:29
Axel64
Hallo zusammen
Hi..ich bin neu in diesem Forum und habe auch noch nie in einem Forum teilgenommen.
Deshalb hoffe ich hier Hilfe bei meinem Anliegen zu bekommen.
Erklärung:
In einer Excel-Tabelle (Übersichtsliste) werden Rechnungsdaten mit entsprechender Rechnungsnummer
in (Spalte B) vortlaufend übernommen.
Die erstellte Rechnung ist als PDF-Dokument auf c:/Archiv/Dokument...... gespeichert.
Ich suche nun eine Lösung - wie ich aus der Tabelle (Übersichtsliste) heraus durch Eingabe (Auswahl) der Rechnungsnummer die entsprechende PDF-Datei suchen u. öffnen kann.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und jeman kann mir dabei helfen.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 11:47:31
Herbert_Grom
Hallo Axel,
aus Excel heraus kannst du keine pdf-Datei öffnen.
Servus
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 11:59:33
Armin
Hallo Axel,
doch das geht schon. Muster im Anhang. Aber Excel mus als *.xlsm gespeichert werden!
https://www.herber.de/bbs/user/138900.xlsm
Gruß Armin
Anzeige
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 12:19:01
Herbert_Grom
Hallo Armin,
vielen Dank für deine Lösung. Nun habe auch ich wieder etwas gelernt!
Da man jedoch nie weiß, ob der User, so wie ich z. B., eine 64-Bit-Excel-Version verwendet, wäre es evtl. sinnvoll, deinen Code um das folgende zu ergänzen:
#If VBA7 Or Win64 Then
Public/Private Declare PtrSafe Sub xxx Lib "kernel32" (ByVal ms As LongPtr)
#Else
Public/Private Declare Sub xxx Lib "kernel32" (ByVal ms As LongPtr)
#End If
Servus
Anzeige
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 12:48:25
Axel64
Hallo
vorerst vielen Dank für eure Hilfe.
Ich wusste, dass es geht jedoch nicht wie!!!
Leider muss ich nochmal nachfragen,um die PDF zu finden
muss ich einen Pfad zuweisen: C:\......
wo muss ich diesen Eintragen?
Bin noch Anfänger in VBA!!!!!
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 15:45:57
Armin
Hallo Axel,
zur Zeit wird der Pfad benutzt in dem das Sheet mit den Namen der PDF-File liegt. Wenn Du einen andern möchtest sind mehrere Möglichkeiten zur Auswahl. Falls Du einen festen Pfad brauchtst kannst Du den auch hier rein schreiben:
ShellExecute hwnd, "open", ActiveWorkbook.Path & "\" & PDFPath, "", "", 3
Oder du benutzt ein Tabellenblatt als Speicher (kann man auch ausblenden) z. Bsp. Zelle A2 und _
schreibst als Pfad

Worksheets("Tabelle2").Range("A2").Value
# Herbert_Grom
Wenn Du WIN10 benutzt und alle Updates ausgeführt hast, ist das nicht mehr nötig!
Gruß Armin
Anzeige
AW: @Armin
09.07.2020 16:10:50
Herbert_Grom
Hallo Armin,
ich benutze Win10 und habe alle Updates ausgeführt und trotzdem hat er bei deinem Code gemeckert und ich musst das "PtrSafe" dazufügen! Woran kann das liegen?
Servus
AW: @Armin
09.07.2020 18:18:30
Armin
Hallo Herbert_Grom
genau kannich es Dir auch nicht erklären, aber bei Office 2019 64bit + Win10 64bit geht es seit einigen Wochen bei mir. Ich hatte jedoch noch keine Zeit die Ursache zu ermitteln.
Gruß Armin
Anzeige
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 14:36:14
Axel64
Hallo zusammen
Danke Danke für die Hilfe!!!
Habe etwas länger gebraucht um zu verstehen!!
Es funktioniert wunderbar muss es nur an meine Bedürfnisse anpassen.
Nochmals Danke und Grüße
Axel
AW: Mit VBA ein PDF über Tabellenblatt öffnen
09.07.2020 16:02:11
Armin
Hallo Axel,
hier kannst Du den Pfad in einem Tabellenblatt schreiben (evtl. ausblenden).
https://www.herber.de/bbs/user/138910.xlsm
Gruß Armin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PDF mit VBA aus Excel öffnen


Schritt-für-Schritt-Anleitung

Um ein PDF über ein Excel-Tabellenblatt zu öffnen, kannst Du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder benutze eine bestehende. Achte darauf, dass die Datei als *.xlsm gespeichert wird, um Makros nutzen zu können.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)".
    • Wähle "Einfügen" und dann "Modul".
  4. Kopiere und füge den folgenden Code ein:

    Sub PDF_Oeffnen()
       Dim PDFPath As String
       Dim Rechnungsnummer As String
    
       ' Rechnungsnummer aus einer Zelle einlesen
       Rechnungsnummer = Worksheets("Tabelle1").Range("B2").Value
    
       ' Pfad zur PDF-Datei
       PDFPath = "C:\Archiv\Dokument\" & Rechnungsnummer & ".pdf"
    
       ' PDF öffnen
       Shell "explorer.exe """ & PDFPath & """", vbNormalFocus
    End Sub
  5. Ändere den Pfad in PDFPath, falls Deine PDF-Dateien an einem anderen Ort gespeichert sind.

  6. Schließe den VBA-Editor und gehe zurück zu Excel.

  7. Führe das Makro aus, indem Du auf "Entwicklertools" > "Makros" klickst, das Makro "PDF_Oeffnen" auswählst und auf "Ausführen" klickst.


Häufige Fehler und Lösungen

  • Fehler: PDF-Datei wird nicht gefunden
    Stelle sicher, dass der Pfad zur PDF-Datei korrekt ist und die Rechnungsnummer in der angegebenen Zelle existiert.

  • Fehler: "Das Makro ist deaktiviert"
    Überprüfe die Sicherheitseinstellungen in Excel und aktiviere Makros.

  • Fehler: "Typ nicht definiert"
    Dies kann an fehlenden Bibliotheken liegen. Stelle sicher, dass Du die richtigen VBA-Bibliotheken ausgewählt hast.


Alternative Methoden

Wenn Du keine VBA-Lösung nutzen möchtest, kannst Du auch folgende Methoden ausprobieren:

  • Hyperlink verwenden: Erstelle einen Hyperlink in Excel, der direkt zur PDF-Datei führt. Klicke mit der rechten Maustaste auf eine Zelle, wähle "Hyperlink" und füge den Pfad zur PDF-Datei ein.

  • Excel Funktionen nutzen: Verwende die Funktion HYPERLINK() um einen Link zu erstellen, der die PDF-Datei öffnet. Beispiel:

    =HYPERLINK("C:\Archiv\Dokument\Rechnungsnummer.pdf", "Rechnung öffnen")

Praktische Beispiele

  1. Rechnung öffnen mit VBA:
    Wenn Du eine Rechnungsnummer in Zelle B2 eingibst, wird die zugehörige PDF-Datei geöffnet.

  2. Pfad in einem Tabellenblatt:
    Du kannst den Pfad zur PDF in eine separate Zelle (z.B. A2) schreiben und den VBA-Code entsprechend anpassen:

    PDFPath = Worksheets("Tabelle1").Range("A2").Value & "\" & Rechnungsnummer & ".pdf"

Tipps für Profis

  • Fehlerbehandlung einfügen: Implementiere Error-Handling in deinen VBA-Code, um zu verhindern, dass Excel abstürzt, wenn etwas schiefgeht.

  • Benutzerfreundlichkeit erhöhen: Füge Eingabefelder oder Dropdown-Listen in Excel hinzu, um die Auswahl der Rechnungsnummer zu erleichtern.

  • Dokumentation: Halte eine excel vba befehle übersicht pdf bereit, um Dir einen schnellen Überblick über die verwendeten Befehle zu verschaffen.


FAQ: Häufige Fragen

1. Kann ich auch mehrere PDFs gleichzeitig öffnen?
Ja, Du kannst eine Schleife in VBA verwenden, um mehrere Rechnungsnummern zu durchlaufen und die entsprechenden PDFs zu öffnen.

2. Was mache ich, wenn ich mit einer 64-Bit-Version von Excel arbeite?
Stelle sicher, dass Du den PtrSafe-Befehl in deinem VBA-Code verwendest, um die Kompatibilität zu gewährleisten. Füge den Code wie folgt hinzu:

#If VBA7 Or Win64 Then
    ' 64-Bit Code hier
#Else
    ' 32-Bit Code hier
#End If

3. Gibt es eine Übersicht über Excel VBA Befehle?
Ja, Du kannst nach einer excel makro befehle übersicht pdf suchen, um eine umfassende Liste der verfügbaren Befehle zu erhalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige