Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
per dbl_click aus Listbox Datei öffnen
04.08.2020 11:26:45
Andreas
Hallo zusammen,
nachdem ich die Problemchen aus meinem letzten Post selber lösen konnte, komme ich aber mit einer neuen Herausforderung.
Ich möchte aus der ListBox per Doppelklick auf einen Eintrag eine Datei im entsprechenden Ordner finden und zumindest markieren bzw. öffnen.
Der Dateiname ist der Eintrag in der 2. Spalte meiner Listbox.
Der Code ist weiter unten, hoffe das Ihr mir anhand dessen helfen könnt.
Er bleibt zum einen mit der Fehlermeldung "Datei nicht gefunden" hängen, wenn ich mit Shell abfrage - Datei habe ich im Verzeichnis zum Test als .txt angelegt.
Zum Anderen bekomme ich die Meldung wenn ich per ShellExecute abfrage "Sub oder Function nicht gefunden....".
Gehe ich mit dem Curser über Shell(Path & ListBox1.List(n, 2)), zeigt er mir den richtigen Pfad und auch den korrekten Dateinamen.
Wo liegt hier mein Fehler?
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim Path
Dim n
Path = "T:\Qualitätsmanagement\Aufzeichnungen\Änderungen_Sondergenehmigungen\"
For n = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(n) = True Then
Shell (Path & ListBox1.List(n, 2))
'ShellExecute (0, "open", Path & ListBox1.List(n, 2), "", "", SW_Hide)
End If
Next
End Sub
Danke vorab schon mal und viele Grüße Andreas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 11:36:46
Werner
Hallo,
wenn es um den Eintrag in der zweiten Spalte deiner Listbox geht, dann stimmt das hier
Shell (Path & ListBox1.List(n, 2)) 

nicht. Die erste Spalte einer Listbox hat den Index 0, somit hat die zweite Spalte den Index 1.
Shell (Path & ListBox1.List(n, 1)) 
Gruß Werner
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 11:49:33
Andreas
Hallo Werner,
noch nicht mal zählen kann ich ;-)…..
Ganz klar hast Du Recht, ich meinte auch die Dritte.
Sry.
Gruß Andreas
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 12:05:48
EtoPHG
Hallo,
Was bitte soll man unter ""...eine Datei im entsprechenden Ordner finden und zumindest markieren" verstehen? Wie markiert man eine Datei?
Ich würde es so probieren:
Shell ("explorer " & Path & ListBox1.List(n, 2))
Gruess Hansueli
Anzeige
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 12:30:47
Andreas
Hallo Hansueli,
Zitat
Was bitte soll man unter ""...eine Datei im entsprechenden Ordner finden und zumindest markieren" verstehen? Wie markiert man eine Datei?
Zitat Ende
Vielleicht etwas unglücklich ausgedrückt. Ich meinte damit, dass man dadurch im Ordner (Explorer) zur jeweiligen Datei springt und nicht unbedingt gleich öffnet. So ähnlich wie bei einer Suche im Dateiexplorer.
Aber zurück zum eigentlichen und Deiner Idee.... Leider die gleiche Meldung "Datei nicht gefunden Laufzeitfehler 53"
Gruß Andreas
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 12:45:36
EtoPHG
Hallo,
Dann gibts halt die Datei wirklich nicht.
Ergänze mal:
Debug.Print Path & ListBox1.List(n,2)
' vor
Shell (Path & ListBox1.List(n,2)

Im Direktfenster des VBA-Editors (Ctlr-G) siehst du jetzt den String, der an die Shell übergeben wird.
Kopiere diesen (Zeile markieren - Ctrl-C)
Öffne ein Cmd-Fenster (Windows cmd)
Füge den kopierten String ein (Ctrl-V) und drücke Enter.
Wird die Datei jetzt gefunden? Ich vermute Nein!
Gruess Hansueli
Anzeige
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 13:27:23
Andreas
Hallo Hansueli,
erstmal danke, ich habe wieder etwas dazu gelernt ……
So findet er die Datei tatsächlich nicht... wenn ich die Dateierweiterung dahinter hänge schon...…
Aber genau das wollte ich nicht, da ich nicht sicher sein kann ob es sich um ein PDF, eine XLSX oder eventuell auch eine DOC handelt....
Habe ich da überhaupt ne Chance, das hinzubekommen?
Gruß Andreas
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 13:31:30
Rudi
Hallo,
datei =dir(path & listbox1.list(n,2) &"*")
if datei "" then
Shell (Path & datei)
else
'was anderes
end if

Gruß
Rudi
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 14:10:27
Andreas
Hallo Rudi,
leider erkennt er Shell nach Then nicht und läuft gleich in Else....
Und nur mit If … End if genau das Gleiche...
Gruß Andreas
Anzeige
AW: per dbl_click aus Listbox Datei öffnen
04.08.2020 17:15:33
volti
Hallo Andreas,
die Funktion Shellexecute gehört zur Windows-API und muss deklariert werden, bevor man sie benutzen kann. Deshalb kommt bei Dir der entsprechende Fehler "... nicht gefunden".
Was kommt denn bei Dir aus den Listbox-Einträgen?
Wenn es Dateinamen und keine ausführbare Programmdateien sind, kannst Du die Shell-Funktion ohne Angabe einer ausführbaren Datei (Programm) so nicht verwenden.
Wenn Du Datendateien mit Suffix in Deiner Listbox (z.B. Test.xlsx oder Tetdate.txt usw.) stehen hast, kannst Du es mit dem u.a. Makro (ungetestet) mal versuchen.
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim Path Dim n Path = "T:\Qualitätsmanagement\Aufzeichnungen\änderungen_Sondergenehmigungen\" For n = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(n) = True Then ShellExecute 0&, "Open", Path & ListBox1.List(n, 2), 0, 0, &H9& '9=SW_RESTORE End If Next End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: per dbl_click aus Listbox Datei öffnen
10.08.2020 09:02:49
Andreas
Hallo Karl-Heinz,
danke für die Unterstützung. Es können tatsächlich Dokumente mit unterschiedlicher Endung sein .pdf; xlsx; .doc.....
Ich habe dienen Vorschlag einmal eingebaut und rumprobiert, das trifft's gerade am Besten. Ich komme nicht weiter. Bei Doppelklick in die Listbox passiert gar nichts, es kommt noch nicht mal eine Fehlermeldung. Der Code läuft einfach über "ShellExecute" rüber und führt nichts aus.
Ich komme da gerade nicht weiter. Magst Du auf meine Datei einmal drauf schauen. Habe sie minimalisiert damit ich sie hochladen kann.
https://www.herber.de/bbs/user/139558.xlsm
Viele Grüße Andreas.
Anzeige
AW: per dbl_click aus Listbox Datei öffnen
10.08.2020 12:04:30
volti
Hallo Andreas,
da die Funktion Shellexecute zur Windows-API gehört, gibt sie zwar einen Fehlercode zurück, den man auswerten kann. Sie erzeugt aber bei Versagen keinen Excelfehler. Deshalb raucht das Programm darüber hinweg. In deinem Beispiel fehlt der vollständige Pfad (hier kein Suffix).
Da dies unbekannt ist, müssen wir erst das Suffix ermitteln. Über Dir ermitteln wir die erste (un hoffentlich einzige) passende Datei und können nun Shellexecute anwenden.

 
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 Dim Path As String, sDatei As String
 Dim n As Integer
 Path = "T:\Qualitätsmanagement\Aufzeichnungen\änderungen_Sondergenehmigungen\"
 For n = 0 To ListBox1.ListCount - 1
     If ListBox1.Selected(n) = True Then
       sDatei = Dir(Path & ListBox1.List(n, 2) & "*")  'Festellen, ob es eine solche Datei gibt
       If sDatei <> "" Then                             'Wenn geufnden => öffnen
          ShellExecute 0&, "Open", Path & sDatei, 0, 0, &H9&
       End If
     End If
  Next n
End Sub
 

viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: per dbl_click aus Listbox Datei öffnen
11.08.2020 07:52:13
Andreas
Hallo Karl-Heinz,
vielen, vielen Dank für die Erklärung und Deine Hilfe.
Erscheint jetzt total logisch, daran habe ich gar nicht gedacht und ich habe wieder ne Menge dazu gelernt.
Klasse. Funktioniert echt super.
Habe einen schönen Tag
Gruß aus dem auch warmen Norden
Andreas

24 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige