Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verzeichnis bei .FileSearch selbst auswählen!

Verzeichnis bei .FileSearch selbst auswählen!
18.09.2003 15:27:39
Joachim
Guten Tag,
hab gerade bei herber nen Code abgeschrieben. Funktioniert ausgezeichnet, aber leider funktioniert das ganze nur im dem Verzeichnis, in dem sich die Datei befindet (durch das CurDir, denke ich). Meine Frage lautet nun:

Wie schaffe ich es, das ich bei der Methode .FileSearch das Verzeichnis selbst auswählen kann?

So etwas ähnliches hatte ich schon bei Dateinamen. Das hieß es einfach getopenfilname und ich konnte die Datei auswählen. Gibt es für ein Vereichnis analog auch so einen Befehl?

Hier ein kleiner Auszug aus dem Script:
Set fs = Application.FileSearch
With fs
.FileType = msoFileTypeExcelWorkbooks
.LookIn = CurDir
.Execute

Vielen Dank schon mal im Vorraus und schönen Gruß, Joachim

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnis bei .FileSearch selbst auswählen!
18.09.2003 15:57:59
Willie
Ich habe einen ähnlichen Code vielleicht hilft es dir weiter
Gruß

Willie


Sub DateienAuflisten()
Dim lngAkt As Long
Dim rngBereich As Range
Dim rngZelle As Range
'Const Verzeichnis = "C:\test\"
Verzeichnis = InputBox(("Bitte Pfad eingeben!"), "Verzeichnisse in Tabelle1", "C:\test\")
'Verzeichnis = ThisWorkbook.Path
With Application.FileSearch
.NewSearch
.LookIn = Verzeichnis
.SearchSubFolders = False ' bei true = mit Unterverzeichnissen
.FileType = msoFileTypeExcelWorkbooks 'Hier den DateiTyp einstellen!
.Execute
For lngAkt = 1 To .FoundFiles.Count
Cells(lngAkt, 1) = Mid(.FoundFiles.Item(lngAkt), Len(Verzeichnis) + 1)
Next lngAkt
End With
End Sub

Anzeige
Dankeschön
18.09.2003 16:31:26
Joachim
Hi Willi,
durch dein Script bin ich auf ne gute Idee gekommen. Schau sie dir doch mal an, vielleicht findest du sie auch etwas praktischer.
Ich hab sie "unten" in meinen Thread selbst gepostet.
Vielen Dank und schönen Gruß, Joachim
AW: Verzeichnis bei .FileSearch selbst auswählen!
18.09.2003 15:58:07
Hajo_Zi
Hallo Joachim

hast Du Dir da nicht ein wenig viel vorgenommen.

Option Explicit

Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type

'32-bit API-Deklarationen
Declare

Function SHGetPathFromIDList _
Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Declare 

Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Sub VerzeichnisauswahlStarten()
Dim strMessage As String
strMessage = "Wählen Sie bitte einen Ordner aus:"
MsgBox GetDirectory(strMessage)
End Sub



Function GetDirectory(Optional strMessage) As String
Dim bInfo As BROWSEINFO
Dim strPath As String
Dim lngR As Long, lngX As Long, intPos As Integer
'  Ausgangsordner = Desktop
bInfo.pidlRoot = 0&
'  Dialogtitel
If IsMissing(strMessage) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = strMessage
End If
'  Rückgabe des Unterverzeichnisses
bInfo.ulFlags = &H1
'  Dialog anzeigen
lngX = SHBrowseForFolder(bInfo)
'  Ergebnis gliedern
strPath = Space$(512)
lngR = SHGetPathFromIDList(ByVal lngX, ByVal strPath)
If lngR Then
intPos = InStr(strPath, Chr$(0))
GetDirectory = Left(strPath, intPos - 1)
Else
GetDirectory = ""
End If
End Function



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.


http://home.media-n.de/ziplies/

Anzeige
Dankeschön
18.09.2003 16:29:08
Joachim
Hi Hajo,
vielen Dank für deine Hilfe, aber so ein riesenscript reinzupacken ist glaub etwas zu aufwendig, zumal mein Chef das ganze noch nachvollziehen muss, wenn ich nicht mehr bin.
Aber trtzdem vielen Dank, ich freue mich immer, wieviel Aufwand du eingeht um Menschen bei ihren kleinen Problemen zu helfen.
Schönen Gruß aus Berlin, Joachim

p.s. Hab meine Lösung übrigens "unten" gepostet (für die, die nach mir kommen).
Hier meine Endlösung
18.09.2003 16:25:29
Joachim
Für eure Recherche hab ich hier meine Endlösung gepostet:

Dim fs As FileSearch
Dim icount As Integer
Set fs = Application.FileSearch
MsgBox "Bitte eine Datei in dem gewünschten Verzeichnis auswählen!"
Dim pathslave
pathslave = Application.GetOpenFilename
Application.EnableEvents = False
Workbooks.Open pathslave
Dim verzeichnis
verzeichnis = ActiveWorkbook.Path
ActiveWorkbook.Close
Application.EnableEvents = True
'MsgBox verzeichnis
With fs
.FileType = msoFileTypeExcelWorkbooks
.LookIn = verzeichnis
.Execute
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige