Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Ordner öffnen
#1
Moin,

dank Dr. Google habe ich einen Code gefunden (ich glaube der ist sogar von steve1da, bin mir aber nicht sicher), der Dateien öffnet. Der müsste aber so umgeschrieben werden, dass sich nur ein Ordner öffnet und keine Datei. In der TextBox sollen auch immer nur Ordnernamen eingegeben und diese dann geöffnet werden.
Code:
Option Explicit

#If Win64 Then
    Private Declare PtrSafe Function SearchTreeForFile Lib "imagehlp.dll" _
        (ByVal RootPath As String, ByVal InputPathName As String, _
        ByVal OutputPathBuffer As String) As Long
#End If

#If 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
#End If

Private Const SW_MAXIMIZE = 3
Const strPath As String = "C:\Users\StefanB\Desktop"

Private Sub CommandButton1_Click()
    Dim strPathName As String * 255
    Dim strName As String
    Dim lngTMP As Long
    On Error GoTo Fin
    If Trim(TextBox1.Text) <> "" Then
        lngTMP = SearchTreeForFile(strPath, "*" & TextBox1.Text & "*", strPathName)
        If lngTMP = 0 Then
            ' Datei nicht vorhanden!
            MsgBox "File not found!"
        Else
            strPathName = Left$(strPathName, InStr(1, strPathName, vbNullChar) - 1)
            strName = RTrim(strPathName)
            ShellExecute 0, "Open", strName, "", "", SW_MAXIMIZE
        End If
    End If
Fin:
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Ich steh da grad nen bissl aufm Schlauch Huh

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#2
Was immer Du mit Order öffnen (ShellExecute öffnet letztenlich "nur" die verknüpfte Anwendung) meinst, geht das wesentlich leichter mit
Code:
Application.FileDialog(msoFileDialogFolderPicker)

https://wellsr.com/vba/2016/excel/vba-se...derPicker/
Antworten Top
#3
Der eigentliche Pfad beinhaltet ca. 80.000 Ordner in denen jeweils Dateien gespeichert wurden. Um nun den richtigen Ordner schnell finden zu können, soll mittels Eingabe in der TextBox dieser geöffnet werden. Das liest sich jetzt sicherlich total behämmert, weil ja Windows von Hause aus schon eine Suchfunktion hat, ABER ich muss es mit Excel und einer UserForm machen.

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#4
Mit dem Code kann man per Button, Ordner auswählen...habe Ihn irgendwann mal aus dem Internet gefunden und benutze Ihn wenn es nötig ist...vielleicht hilft er ja

Code:
Private Sub CommandButton1_Click()
    Dim AppShell As Object
    Dim BrowseDir As Variant
    Dim Pfad As String
    Set AppShell = CreateObject("Shell.Application")
    Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
    On Error Resume Next
    Pfad = BrowseDir.items().Item().Path
    If Pfad = "" Then Exit Sub
    TextBox1 = Pfad
    On Error GoTo 0
End Sub
Datei mit Beispiel:
.xlsm   Ordner_oeffnen.xlsm (Größe: 23,87 KB / Downloads: 2)

Wenn es nicht das ist was gewünscht ist... Bitte einfach ignorieren 87

Danke,
78
Niko
[-] Folgende(r) 1 Nutzer sagt Danke an Niko für diesen Beitrag:
  • StefanB
Antworten Top
#5
Danke Niko, aber der Code hilft mir nicht so richtig weiter. Da suche ich mir einen Wolf den richtigen Ordner zu finden 26

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#6
Hallöchen,

Zitat:Um nun den richtigen Ordner schnell finden zu können, soll mittels Eingabe in der TextBox dieser geöffnet werden.
ThisWorkbook.FollowHyperlink "c:\Temp"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Aha, und wir sollen DIr hier den fertigen Code schreiben.
Was passiert denn, wenn es mehrere Verzeichnisse mit dem gleichen Namen gibt?

Ansonsten google hilft
https://stackoverflow.com/a/46646498
Antworten Top
#8
Hallöchen,

Zitat:Aha, und wir sollen DIr hier den fertigen Code schreiben.

glaub ich eher nicht.

Zitat:Was passiert denn, wenn es mehrere Verzeichnisse mit dem gleichen Namen gibt?

glaub ich auch nicht, jedenfalls nicht als Unterordner eines Ordners.

100
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Glaub ich schon, und zwar beides.

Sorry, aber die zweite Aussage ist ja fast schon beleidigend. Natürlich gibt es nicht zwei (Unter-)Verzeichnisse mit dem gleichen Namen in einem Verzeichnis, aber so wie ich das verstehe, will er einen kompletten Teilbaum durchsuchen.
Antworten Top
#10
(05.01.2022, 13:34)Warkings schrieb: Aha, und wir sollen DIr hier den fertigen Code schreiben.
Was passiert denn, wenn es mehrere Verzeichnisse mit dem gleichen Namen gibt?

Du musst mir keinen fertigen Code servieren! Mir reicht eine Info an welcher Stelle ich was ändern muss und warum.
Es gibt nur ein Verzeichnis in dem alle Ordner hinterlegt sind.

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste