Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pdf -bestimmte Seite- öffnen via VBA

Pdf -bestimmte Seite- öffnen via VBA
Urmila
Hallo zusammen,
ich hoffe ihr könnt mir weiterhelfen. Habe bereits gegoogelt und nicht vervollständiges gefunden
Im Word kann man ja eine PDF-Datei öffnen, dabei kann man auch die Seite angeben, die beim Öffnen erscheint.
In Word sieht das ganze so aus

HYPERLINK "C:/Beispiel.pdf" \l "#page=5" \* MERGEFORMAT
In Excel weiß ich wie man ein PDF öffnet, aber nicht wie man eine bestimmte Seite, in dem Fall die 5. öffnet.
Dim s
Set s = CreateObject("shell.application")
s.Open "C:\Beispiel.pdf"
Ich habe nur Adobe Reader.
Ich hoffe ihr könnt mir helfen
Danke und LG
Urmila
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Pdf -bestimmte Seite- öffnen via VBA
13.01.2012 10:49:16
Heiko
Moin Urmila,
ich nutze das in Powerpoint auch mit dem Adobe Reader, wie guckst du hier.
Wenn der Reader schon offen ist wird er in den Vordergrund geholt.
Vielleicht brauchst du auch garnicht alles, wie der Aufrufpfad zusammengestellt wird ist ja unten zu erkennen.
Hier mal ein Doc mit den möglichen Parametern, viel Spaß beim rumprobieren.
https://www.herber.de/bbs/user/78415.doc
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Function PDFAnzeigen(intPage As Integer, strPDFDatei As String)
' Ruft den Acrobat Reader auf der angegebenen Seite auf.
' Parameterliste
' intPage = Gibt die Seite im PDF Dokument an die aufgerufen werden soll
' strPDFDatei = Gibt das zu öffnende PDF Dokument an
' Aufruf z.B. so:
' PDFAnzeigen 3, strPathreader
' Ruft das im Pfad angegebenen PDF Dokument auf Seite 3 auf
Dim strParameter As String
On Error GoTo ErrorHandler
' Parameter für den Aufruf des Acrobat Readers zusammenstellen.
strParameter = "/A " & Chr(34) & "page=" & intPage & "&navpanes=0=OpenActions" & Chr(34) & " " & _
strPDFDatei
' Nun den Acrobat Reader mit den vorher definierten Parametern aufrufen.
ShellExecute 0, vbNullString, "acrord32", strParameter, "C:\", 3
' Reader in den Vordergrund !!!
SetForegroundWindow FindWindow("AcrobatSDIWindow", vbNullString)
Exit Function
ErrorHandler:
MsgBox "Error! Powerpoint can´t open the Acrobat Reader!", vbOKOnly + vbCritical, " Heiko´s  _
Makro Message"
End Function

Gruß Heiko
Anzeige
AW: Pdf -bestimmte Seite- öffnen via VBA
13.01.2012 13:42:11
Urmila
Danke Heiko,
ich werde mal schauen was sich so machen lässt....besser gesagt bin schon die ganze Zeit dran und kriegs nichts hin....
LG
Urmila
AW: Pdf -bestimmte Seite- öffnen via VBA
13.01.2012 13:52:14
Heiko
Hallo Urmila,
hier mal um einiges verkürzt, gestartet wird es durch einen Command Button auf einem Excel Tabellenblatt.
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Sub CommandButton1_Click()
Dim strParameter
' Die 5 steht heir für Seite fünf im PDF Dokument der Pfad ist wohl zu erkennen.
strParameter = "/A " & Chr(34) & "page=" & 5 & "&navpanes=0=OpenActions" & Chr(34) & " " & "C:\ _
Copy\Beispiel.pdf"
' Nun den Acrobat Reader mit den vorher definierten Parametern aufrufen.
ShellExecute 0, vbNullString, "acrord32", strParameter, "C:\", 3
End Sub

Gruß Heiko
Anzeige
Heiko, du bist ein Schatz, danke Dir - LG
15.01.2012 11:28:12
Urmila
Urmila
:))
;

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 auf bestimmter Seite mit VBA öffnen


Schritt-für-Schritt-Anleitung

Um eine PDF-Datei auf einer bestimmten Seite in Excel zu öffnen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Füge den folgenden VBA-Code ein:

    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
       ByVal hwnd As Long, _
       ByVal lpOperation As String, _
       ByVal lpFile As String, _
       ByVal lpParameters As String, _
       ByVal lpDirectory As String, _
       ByVal nShowCmd As Long) As Long
    
    Private Sub CommandButton1_Click()
       Dim strParameter
       ' Die 5 steht hier für Seite fünf im PDF-Dokument
       strParameter = "/A " & Chr(34) & "page=5&navpanes=0=OpenActions" & Chr(34) & " " & "C:\Pfad\Zu\Deiner\Beispiel.pdf"
       ' Nun den Acrobat Reader mit den vorher definierten Parametern aufrufen
       ShellExecute 0, vbNullString, "acrord32", strParameter, "C:\", 3
    End Sub
  4. Ändere den Pfad zu deiner PDF-Datei in der Zeile mit strParameter.

  5. Füge einen Command Button auf deinem Excel-Arbeitsblatt hinzu, um das Makro auszuführen.

  6. Klicke auf den Button, um die PDF-Datei auf der gewünschten Seite zu öffnen.


Häufige Fehler und Lösungen

  • Fehler: PDF-Datei wird nicht geöffnet.

    • Lösung: Stelle sicher, dass der Pfad zur PDF-Datei korrekt ist. Überprüfe auch, ob der Adobe Reader installiert ist.
  • Fehler: Acrobat Reader öffnet die falsche Seite.

    • Lösung: Überprüfe die Parameter in strParameter. Achte darauf, dass du die Seitenzahl korrekt angibst.
  • Fehler: Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.

Alternative Methoden

Eine andere Möglichkeit, PDF-Dateien zu öffnen, ist die Verwendung von Hyperlinks:

  1. Erstelle einen Hyperlink in Excel mit der Funktion:

    =HYPERLINK("C:\Pfad\Zu\Deiner\Beispiel.pdf#page=5", "Öffne PDF auf Seite 5")
  2. Klicke auf den Link, um die PDF auf der angegebenen Seite zu öffnen. Beachte, dass dies nur funktioniert, wenn der PDF-Viewer die #page-Option unterstützt.


Praktische Beispiele

Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst:

  • PDF auf Seite 3 öffnen:

    strParameter = "/A " & Chr(34) & "page=3&navpanes=0=OpenActions" & Chr(34) & " " & "C:\Pfad\Zu\Deiner\Beispiel.pdf"
  • PDF mit Benutzerinteraktion öffnen:

    • Du kannst auch einen Input-Dialog verwenden, um die Seitenzahl dynamisch einzugeben:
    Dim intPage As Integer
    intPage = InputBox("Bitte Seite eingeben:")
    strParameter = "/A " & Chr(34) & "page=" & intPage & "&navpanes=0=OpenActions" & Chr(34) & " " & "C:\Pfad\Zu\Deiner\Beispiel.pdf"

Tipps für Profis

  • Verwende Fehlerbehandlung in deinem VBA-Code, um sicherzustellen, dass dein Skript auch bei unerwarteten Eingaben funktioniert.
  • Teste den Code mit verschiedenen PDF-Dateien, um sicherzustellen, dass er in allen Fällen funktioniert.
  • Dokumentiere deinen Code gut, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Kann ich auch mehrere PDF-Dateien öffnen?
Ja, du kannst mehrere ShellExecute-Befehle hintereinander ausführen, um verschiedene PDFs zu öffnen.

2. Funktioniert das auch mit anderen PDF-Viewern?
Die hier beschriebenen Methoden sind speziell für den Adobe Reader optimiert. Für andere Viewer müssen die Parameter möglicherweise angepasst werden.

3. Gibt es eine Möglichkeit, PDF nach Excel zu konvertieren?
Ja, es gibt verschiedene Tools und Software, die PDF nach Excel konvertieren können, wie Adobe Acrobat oder Online-Dienste.

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