Beliebige Datei öffnen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Beliebige Datei öffnen
von: muehli
Geschrieben am: 17.11.2015 13:01:59

Guten Tag zusammen,
ich versuche gerade per VBA eine x-beliebige zu öffnen.
Ich bin das Ganze so angegangen:

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 Declare Function GetDesktopWindow Lib "user32" () As Long

Private Sub btn_ETOproject_Click()
    
    Pfad = Range("S10").Value
    rc = ShellExecute(0, "open", Pfad, "", "", SW_HIDE)
End Sub
In Range S10 steht:
C:\Tools\ETO Project.xlsm
irgendwie funktioniert es aber nicht.
Kann mir jemand helfen?
Freundliche Grüße
muehli

Bild

Betrifft: AW: Beliebige Datei öffnen
von: Herbert Grom
Geschrieben am: 17.11.2015 13:23:22
Hallo,
hast Du es schon mal mit dem Datei-Dialog versucht:

   Dim vFile As Variant
   
      '* Dialog zum öffnen einer Datei
         vFile = Application.GetOpenFilename
         If vFile = False Then Exit Sub
         Workbooks.Open vFile
Ansonsten solltest Du anstatt Deines "Private Declare Function..." den folgenden Code nehmen:
#If VBA7 Or Win64 Then
    Private Declare PtrSafe 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
#Else
    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
#End If
#If VBA7 Or Win64 Then
    Private Declare PtrSafe Function GetDesktopWindow Lib "user32" () As Long
#Else
    Private Declare Function GetDesktopWindow Lib "user32" () As Long
#End If
Servus

Bild

Betrifft: AW: Beliebige Datei öffnen
von: muehli
Geschrieben am: 17.11.2015 14:11:12
Hallo Herbert,
vielen Dank für die schnelle Antwort!
mit Workbooks.Open vFile kann man nur EXCEL-Files öffnen, wenn ich das richtig verstanden habe.
Reicht für meine Anwengung auch zu 80%.
Ich nehme an, dass dann die zweite Variante ein beliebiges Dateiformat öffnet, oder?
Freundliche Grüße und danke
Muehli

Bild

Betrifft: AW: Beliebige Datei öffnen
von: Uduuh
Geschrieben am: 17.11.2015 21:27:17
Hallo,
versuchs mal mit

Sub yyy ()
  dim myshell as object
  set myshell = createobject("wscript.shell")
  myshell.run chr(34) & Range("S10").Value & chr(43)
End Sub
Gruß aus’m Pott
Udo


Bild

Betrifft: AW: Beliebige Datei öffnen
von: muehli
Geschrieben am: 18.11.2015 07:53:47
Hi Udo,
danke für die Antwort.
Habe es gerade mit deinem Code versucht. Aber die Methode ist "fehlgeschlagen".
Freundliche Grüße
Muehli

Bild

Betrifft: AW: Beliebige Datei öffnen
von: Michael
Geschrieben am: 21.11.2015 17:54:36
Hi zusammen,
noch ein Versuch: Shell öffnet PROGRAMME, aber man kann auch DATEIN starten, wobei Windows das jeweils passende Programm dafür mit öffnet, also bei .DOCX eben word usw.
Dazu muß man dem Shell das "cmd" voranstellen, das ist der "Kommandoprozessor".
Das Makro:

Option Explicit
Sub aufrufen()
Dim i&
Dim ergebnis
Dim aufruf As String
For i = 2 To 5
  aufruf = "cmd /c " & Range("B" & i).Value
  ergebnis = Shell(aufruf, vbNormalFocus)
  
  MsgBox "Das war Nr. " & i & " Ergebnis: " & ergebnis
Next
End Sub

Ich habe mal getestet mit:
B2: C:\Windows\System32\calc.exe          das öffnet den Taschenrechner
B3: C:\A_Herber\BlaBla.txt                das öffnet den Editor mit der Textdatei
B4: C:\A_Herber\Formel_Werte.GIF          das öffnet (leider) den IE mit dem Bild
B5: C:\A_Herber\PDF-Test.pdf              das öffnet den Acrobat Reader samt PDF

Vielleicht hilft das ja weiter.
Schöne Grüße,
Michael
P.S.: ein Umweg über Batch-Datei wurde hier beschrieben:
https://www.herber.de/forum/archiv/720to724/721183_cmd_befehle_mit_vba_ausfuehren.html

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Beliebige Datei öffnen"