Supportnet / Forum / Tabellenkalkulation
Pfadfindung durch Nutzung Explorer in Excel
Frage
Hallo Leute,
ich habe folgendes Problem: ich möchte in Excel über einen Button den Explorer starten, dort dann eine bestimmte Datei auswählen, diese aber nicht öffnen, sondern den kompletten Pfad bis zur Datei in eine Zelle (oder ein Textfeld) in Excel kopieren/einfügen.
Wer kann mir helfen?!
Schonmal vielen Dank für eure Mühen!!!
Gruß,
Richie
Antwort 1 von nostalgiker6
Vielleicht nicht ganz befriedigend - aber wenn man im Explorer die Option "Vollständigen Pfad in der Adresszeile anzeigen" (Extras - Ordneroptionen - Ansicht) ankreuzt, dann kann man den dort angezeigten "Vollständigen Pfad" sehr bequem in die Zwischenablage kopieren etc.....
Antwort 2 von Flupo
Wenn du den Explorer nur zum suchen der Datei nehmen willst, geht es auch einfacher.
Schau dir mal die Online-Hilfe zum Befehl GetOpenFilename an.
Zitat:
Damit solltest du das Gewünschte erreichen.
Gruß Flupo
Schau dir mal die Online-Hilfe zum Befehl GetOpenFilename an.
Zitat:
Zitat:
Zeigt das Standard-Dialogfeld Öffnen an und liest einen vom Benutzer eingegebenen Dateinamen ein, ohne tatsächlich eine Datei zu öffnen.
Zeigt das Standard-Dialogfeld Öffnen an und liest einen vom Benutzer eingegebenen Dateinamen ein, ohne tatsächlich eine Datei zu öffnen.
Damit solltest du das Gewünschte erreichen.
Gruß Flupo
Antwort 3 von Flupo
Ergänzung: Die zugehörige Pfadangabe erhältst du mit dem Befehl CurDir().
Die beiden Zeichenfolgen zusammen ergeben dann den String mit Pfadangabe und Dateinamen.
Gruß Flupo
Die beiden Zeichenfolgen zusammen ergeben dann den String mit Pfadangabe und Dateinamen.
Gruß Flupo
Antwort 4 von Richie200978
Hallo nostalgiker6!
Vielen Dank für die schnelle Antwort!!! Trifft leider nicht ganz mein Problem; ich muss 2 "beliebige" Dateien miteinander vergleichen. Dazu habe ich ein Menü erstellt, in dem ich die beiden Dateien zuerst auswählen muss und dann über verschieden Makros miteinander vergleiche.
Dazu sollen im Menü die Pfade für die zu vergleichenden Dateien angezeigt werden. Auf die Pfade beziehen sich dann die Makros für den Vergleich.
(...ist nicht so einfach zu beschreiben :-))
..."ich" hab´s geschafft (diverse Excel-Hilfen) , es bis auf die Ordnerebene zu automatisieren; den letzten Schritt bekomme ich allerdings nicht hin (Pfad bis zum Ordner geht; allerdings nicht bis zur Datei).
Vielleicht hat noch jemand nen Tipp!
Trotzdem vielen Dank!!!
Gruß,
Richie
Vielen Dank für die schnelle Antwort!!! Trifft leider nicht ganz mein Problem; ich muss 2 "beliebige" Dateien miteinander vergleichen. Dazu habe ich ein Menü erstellt, in dem ich die beiden Dateien zuerst auswählen muss und dann über verschieden Makros miteinander vergleiche.
Dazu sollen im Menü die Pfade für die zu vergleichenden Dateien angezeigt werden. Auf die Pfade beziehen sich dann die Makros für den Vergleich.
(...ist nicht so einfach zu beschreiben :-))
..."ich" hab´s geschafft (diverse Excel-Hilfen) , es bis auf die Ordnerebene zu automatisieren; den letzten Schritt bekomme ich allerdings nicht hin (Pfad bis zum Ordner geht; allerdings nicht bis zur Datei).
Vielleicht hat noch jemand nen Tipp!
Trotzdem vielen Dank!!!
Gruß,
Richie
Antwort 5 von Richie200978
Hallo Flupo!
Auch an dich vielen Dank für die Antwort!!!
Muss mal probieren, ob mir das weiterhilft!
Viele Grüße,
Richie
Auch an dich vielen Dank für die Antwort!!!
Muss mal probieren, ob mir das weiterhilft!
Viele Grüße,
Richie
Antwort 6 von fürLau
Hallo
Das gabs schon öfters:
https://supportnet.de/threads/1185660
Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.
Das gabs schon öfters:
https://supportnet.de/threads/1185660
Gruß[h3]{[h1]Ó¤[sup...fürLau
Signatur wurde ganz und gar ohne SNTool erstellt.
Antwort 7 von nighty
hi all :)
ein beispiel :)
gruss nighty
Option Explicit
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDList As Long, ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Sub Einlesen()
Dim Ordnername
Cells(1, 1) = Ordnerwählen("Ab welchem Verzeichnis einlesen?")
End Sub
Private Function Ordnerwählen(ByVal strTitle As String) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim UserBrowseInfo As BrowseInfo
With UserBrowseInfo
.hwndOwner = 0
.lpszTitle = lstrcat(strTitle, "")
.ulFlags = 3
End With
lngIDList = SHBrowseForFolder(UserBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
Ordnerwählen = strBuffer
End If
End Function
ein beispiel :)
gruss nighty
Option Explicit
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDList As Long, ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Sub Einlesen()
Dim Ordnername
Cells(1, 1) = Ordnerwählen("Ab welchem Verzeichnis einlesen?")
End Sub
Private Function Ordnerwählen(ByVal strTitle As String) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim UserBrowseInfo As BrowseInfo
With UserBrowseInfo
.hwndOwner = 0
.lpszTitle = lstrcat(strTitle, "")
.ulFlags = 3
End With
lngIDList = SHBrowseForFolder(UserBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
Ordnerwählen = strBuffer
End If
End Function
Antwort 8 von Richie200978
Hallo fürLau,
das war genau das, was ich gesucht habe!!!
Vielen Dank!!!!!!!!!!!!
...aber auch vielen Dank an alle anderen!!!
Gruß,
Richie
das war genau das, was ich gesucht habe!!!
Vielen Dank!!!!!!!!!!!!
...aber auch vielen Dank an alle anderen!!!
Gruß,
Richie
Antwort 9 von nostalgiker6
Ich weiss ja nicht, in welcher Hinsicht die Dateien verglichen werden sollen - aber sehr viele Vergleiche (gerade inhaltlicher Art) lassen sich ganz ausgezeichnet mit "Beyond Compare" durchführen.
Es gibt eine Testversion.
www.scootersoftware.com
Es gibt eine Testversion.
www.scootersoftware.com