Shell bzw. ShellExecute - Bitte um Hilfe
20.06.2017 22:14:39
TiloT
es ist schon spät aber ich kann nicht abschalten, aus folgendem Grund bei dem
Ich um Eure Hilfe bitte:
Merke ActiveCell.Value
Erstell Dir PDF Liste in Combobox
Öffne PDF by Click
Öffne die erweiterte Suche und übergebe den Wert aus ActiveCell.Value
Suche
Hier das Konstrukt:
Sub Uopen
Userbox1.Show
End Sub
In der Userbox habe ich eine Combobox die ich so verfülle:
Option Explicit
Private Sub CommandButton1_Click()
Unload UserForm1
UserForm1.Hide
End Sub
Private Sub UserForm_Initialize()
Dim strPath As String
Dim strFile As String
Dim strTabName As String
strPath = " C:\Documents\Listen\"
strFile = Dir(strPath)
With ComboBox1
.clear
Do Until strFile = ""
.AddItem Left(strFile, Len(strFile))
strFile = Dir
Loop
End With
End Sub
Bei Auswahl einer PDF aus der CB wird die PDF geöffnet, die erweiterte Suche geöffnet, der Suchbegriff übergeben und gesucht!Private Sub ComboBox1_Click()
On Error GoTo 0
Suche = UserForm1.ComboBox1.Text
Call Listen
End Sub
Option Explicit
Public Suche As String
Sub Listen()
Dim pfad_zum_reader As String
Dim pfad_zur_datei As String
Dim suchbegriff As String
pfad_zum_reader = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
pfad_zur_datei = " C:\Documents\Listen " & "\" & Suche
suchbegriff = ActiveCell.Value
Shell pfad_zum_reader & " /A search=" & suchbegriff & " " _
& pfad_zur_datei, vbMaximizedFocus
Unload UserForm1
UserForm1.Hide
End Sub
Leider schafft es Shell in 80% aller Fälle nicht die entsprechende PDF Dateien zu finden bzw. sie zu öffnen, aus irgendeinem Grund Beim öffnen der Datei ist ein Fehler Diese Datei kann nicht gefunden werden!
Das passiert auch ohne Übergabe des ActiveCell.Value Suchbegriffs, also reines öffnen!
Mit ShellExecute und kann ich alle PDF (und sowieso alle Dateien) öffnen ohne irgendwelche Probleme.
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 PDF_Show()
Dim Pfad As String
Pfad = " C:\Documents\Listen \"
ShellExecute 0, "open", Pfad, "", "", 1
End Sub
Könnt Ihr mir bitte helfen ShellExecute in mein Konstrukt einzubauen oder anzupassen!?Ich weiß einfach nicht wie die Parametereingabe erfolgen muss um die Funktionsweise wie mit Shell (siehe oben) herzustellen.
RAW AND DIRTY VERSION
Sub Listen()
Dim pfad_zum_reader As String
Dim pfad_zur_datei As String
Dim suchbegriff As String
Dim lSuccess As Long
pfad_zum_reader = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
pfad_zur_datei = "C:\Documents\Listen" & "\" & Suche
suchbegriff = ActiveCell.Value
lSuccess = ShellExecute(0, "Open", pfad_zum_reader & pfad_zur_datei & " /A search=" & suchbegriff )
Unload UserForm1
UserForm1.Hide
End Sub
Vielen lieben Dank schon einmal im Voraus.
Gruß und einen schönen Abend
Tilo