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

bestimmte pdf-Datei aus Verzeichnis öffnen

Forumthread: bestimmte pdf-Datei aus Verzeichnis öffnen

bestimmte pdf-Datei aus Verzeichnis öffnen
25.10.2015 13:37:33
Axel_W

Hallo VBA-Kenner,
ich habe ein kleines Problem, das ich trotz Recherche in der Forum-Suche nicht gelöst bekomme.
In einem Verzeichnis (der Pfad ist feststehend) befinden sich mehrere pdf-Dateien, deren Dateiname sich aus einem feststehenden Namen (TestA_ , TestB_ , TestC_ , usw.) und einer veränderlichen Datumsangabe in der Schreibweise "20151021" zusammensetzt ( also z.B. TestA_20151021.pdf , usw.).
Zur Zeit öffne ich die betreffenden pdf-Dateien aus einer Userform mit einem Commandbutton heraus, in dem ich einen Hyperlink, der in einer Zelle im Tabellen steht, anspreche.
Bsp.: Sheets("Testdaten").Cells(4, 4).Hyperlinks(1).Follow
( In der Zelle "D4" steht als Hyperlink "Messreihe1\Testdaten\TestA_20151021.pdf )
Das funktioniert auch sehr gut. Da sich aber der Dateiname ständig ändert (Datum), möchte ich jetzt irgendwie erreichen, dass der Anfang des Dateinamens reicht, um die Datei als solche zu erkennen und dann direkt zu öffnen, ohne irgendeinen "Öffnen-Dialog".
Hier mein Versuch, das umzusetzen ...
Option Explicit
Public Pub TestdatenAnzeigen()
Dim Testdaten As Workbook
Dim Pfad As String
Dim TestA As String
Dim TestB As String
Dim TestB As String
TestA = "TestA_"
TestB = "TestB_"
TestC = "TestC_"
On Error Goto err
Set Testdaten = ActiveWorkbook
Pfad = ThisWorkbook.Path
Msgbox Pfad & "\TestdatenFiles\" & TestA, vbInformation 'nur zum Testen der Pfadangabe
Msgbox Pfad & "\TestdatenFiles\" & TestB, vbInformation
Msgbox Pfad & "\TestdatenFiles\" & TestC, vbInformation
'und hier fehlen mir jetzt die passenden Ideen ...
Exit Sub
err:
Application.ScreenUpdating = True
Call Msgbox ("Prüfen, ob Testdaten vorhanden sind", vbExclamation, "Fehler")
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmte pdf-Datei aus Verzeichnis öffnen
25.10.2015 13:56:12
Daniel
Hi
den vollständigen Dateinamen bekommst du mit der DIR-Funktion:
 Pfad = ThisWorkbook.Path &  "\TestdatenFiles\"
TestA = Pfad & Dir(Pfad & "*TestA_*.pdf")
damit kannst du dann den Hyperlink neu aufbauen
wichtig ist, dass des von TestA_ nur eine version im dem Verzeichnis geben sollte.
sonst bist du dir nicht sicher, welche dir die DIR-Funktion zurückgibt.
Gruss Daniel

Anzeige
AW: bestimmte pdf-Datei aus Verzeichnis öffnen
25.10.2015 13:57:52
Hajo_Zi
Datei öffnen Word, Powerpoint oder sonstwas

Option Explicit
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
Sub Open_File(strFileName As String, windowType As Integer)
ShellExecute 0, "Open", strFileName, "", "", windowType
End Sub
Sub test()
'1 = vbNormalFocus
'2 = Minimized
'3 = Maximized
Open_File "c:\DeineDatei.txt", 1
End Sub
‘ von Ramses Rainer


Anzeige
AW: bestimmte pdf-Datei aus Verzeichnis öffnen
25.10.2015 15:07:39
Axel_W
Hallo Daniel, Hallo Hajo,
vielen Dank für die beiden Hinweise. Damit komme ich weiter.
@Daniel, auf die einfachsten Dinge kommt man leider nicht immer, die Ergänzung mit den "*" hatte ich vergessen.
@ Hajo, damit hast du eine zweite Frage schon beantwortet. Danke auch dafür.
Euch ein schönes Wochenende.

Anzeige
;
Anzeige

Infobox / Tutorial

PDF-Dateien mit VBA in Excel öffnen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Userform in Excel, um einen Button hinzuzufügen, der beim Klicken die PDF-Datei öffnet.

  2. Füge den folgenden VBA-Code in das Modul deiner Userform ein:

    Option Explicit
    
    Public Sub TestdatenAnzeigen()
       Dim Testdaten As Workbook
       Dim Pfad As String
       Dim TestA As String
       Dim Dateiname As String
    
       TestA = "TestA_"
       Pfad = ThisWorkbook.Path & "\TestdatenFiles\"
    
       ' Verwende DIR, um die PDF-Datei zu finden
       Dateiname = Dir(Pfad & TestA & "*.pdf")
    
       If Dateiname <> "" Then
           ' PDF-Datei öffnen
           Shell "cmd /c start " & Pfad & Dateiname, vbHide
       Else
           MsgBox "Keine Datei gefunden", vbExclamation
       End If
    End Sub
  3. Testen: Klicke auf den Button in deiner Userform, um die PDF-Datei zu öffnen.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen der PDF-Datei: Stelle sicher, dass sich die PDF-Datei im angegebenen Verzeichnis befindet und dass der Dateiname das festgelegte Muster erfüllt.
  • DIR-Funktion liefert nichts zurück: Überprüfe, ob die Datei im Verzeichnis tatsächlich existiert und ob der Pfad korrekt ist.
  • Shell Befehl funktioniert nicht: Stelle sicher, dass der Shell-Befehl korrekt ist und dass der Pfad zur PDF-Datei richtig angegeben ist.

Alternative Methoden

Wenn du die PDF-Datei nicht mit dem Shell-Befehl öffnen möchtest, kannst du auch die ShellExecute-Methode verwenden. Hier ist ein Beispiel:

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

Sub OpenPDF(strFileName As String)
    ShellExecute 0, "Open", strFileName, vbNullString, vbNullString, 1
End Sub

Diese Methode ist nützlich, wenn du eine PDF-Datei in einem bestimmten Fensterstil öffnen möchtest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die oben genannten Methoden kombinieren kannst:

Public Sub OpenTestPDF()
    Dim Pfad As String
    Dim Dateiname As String
    Pfad = ThisWorkbook.Path & "\TestdatenFiles\"

    ' Beispiel für PDF-Dateiname
    Dateiname = Dir(Pfad & "TestA_*.pdf")

    If Dateiname <> "" Then
        OpenPDF Pfad & Dateiname
    Else
        MsgBox "Keine passende PDF-Datei gefunden."
    End If
End Sub

Tipps für Profis

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um die Benutzer über Probleme beim Öffnen von Dateien zu informieren.
  • Dynamische Dateinamen: Wenn du mit vielen unterschiedlichen PDF-Dateien arbeitest, kannst du den Dateinamen dynamisch anpassen, um verschiedene Dateiversionen zu öffnen.
  • Sicherstellen, dass nur eine Datei vorhanden ist: Überprüfe vor dem Öffnen, dass nur eine Datei mit dem gewünschten Präfix existiert, um Verwirrung zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich mehrere PDF-Dateien öffnen?
Du kannst eine Schleife verwenden, um mehrere Dateien mit dem gleichen Präfix zu öffnen.

2. Funktioniert das in allen Excel-Versionen?
Ja, die oben beschriebenen Methoden sollten in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass du die richtigen Berechtigungen für den Zugriff auf das Dateisystem hast.

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