Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1388to1392
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
Inhaltsverzeichnis

Ersatz für FileSearch in Userform

Ersatz für FileSearch in Userform
23.10.2014 10:23:46
Frank
Hallo Gemeinde,
ich habe mich vor fast 8 Jahren mal etwas mit Excel und VBA beschäftigt und einen Code mit Hilfe auch aus diesem Forum erstellt. Heute weis ich selbst nicht mehr genau, wie das alles funktioniert und bin darauf angewiesen alles Schritt für Schritt wieder nachzuvollziehen.
Sinn des Codes ist, dass ich in einer Userform Exceldateien eines bestimmten Ordners angezeigt bekomme. Hintergrund ist der, dass ich in diesem Ordner viele Daten abgelegt habe, die ich bei Bedarf in eine andere Exceldatei einlesen möchte.
Der nun folgende Code beinhaltet "FileSearch". Nun haben wir auf Excel 2013 umgestellt und ich stehe auf dem Schlauch, da es FileSearch ja nicht mehr gibt. Ich habe mit einigen Beispielen hier schon probiert, kriege es aber selbst nicht hin.
Wie kann ich den folgenden Code anpassen, damit ich die Funktion wiederbekomme?
Herzlichen Dank vorab
Frank
Private Sub UserForm_Initialize()
Dim Datei As String
Dim Pfad As String
Dim PfadL As String
Dim i As Integer
Dim Anzahl As Integer
Dim FeldD() As String
Dim M As Byte
Halt = 0
Pfad = ActiveWorkbook.Path
PfadL = Pfad & "\Discovererdaten Jugendliche\"
With Application.FileSearch
.NewSearch
.LookIn = PfadL
.Filename = "*.xls"
.Execute
Anzahl = .FoundFiles.Count
End With
On Error Resume Next
ReDim FeldD(Anzahl)
i = 1
Datei = Dir(PfadL & "*.xls")
While Datei  ""
FeldD(i) = Datei
i = i + 1
Datei = Dir()
Wend
For i = 1 To Anzahl
frm_Einlesen.lst_Import.AddItem (FeldD(i))
Next i
On Error GoTo 0
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ersatz für FileSearch in Userform
23.10.2014 10:33:26
Beverly
Hi Frank,
seit Excel2007 wird Application.FileSearch nicht mehr unterstützt - versuche es nach diesem Prinzip:
Sub mehrere_arbeitsmappen()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
strTyp = "*.xls"
strVerzeichnis = "D:\Test\"
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
Do While strDateiname  ""
'... hier der Code was du mit der Mappe machen willst
Loop
End Sub


Anzeige
AW: Ersatz für FileSearch in Userform
23.10.2014 11:03:27
Frank
Hallo Karin,
ich habe deinen Code mal getestet. In meinem auszulesenden Ordner (bei dir "Test") habe ich zwei Dateien gelegt.
Wenn ich nun in deinen Code eine Msgbox einfüge, gibt es eine Endlosschleife und es wird nur die zweite Datei des Ordners angezeigt.
Habe ich da was falsch verstanden, bzw. muss ich noch was anpassen?
Sub mehrere_arbeitsmappen()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
strTyp = "*.xls"
strVerzeichnis = "F:\DIENST\Excel\JutaD\Discovererdaten Jugendliche\" '"D:\Test\"
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
Do While strDateiname  ""
Msgbox strDateiname
'... hier der Code was du mit der Mappe machen willst
Loop
End 

Sub
Gruß Frank

Anzeige
AW: Ersatz für FileSearch in Userform
23.10.2014 11:14:59
Beverly
Hi Frank,
sorry, da hatte ich aus meinem Originalcode 1 Zeile zu viel gelöscht
    Do While strDateiname  ""
'... hier der Code was du mit der Mappe machen willst
strDateiname = Dir
Loop



AW: Ersatz für FileSearch in Userform
23.10.2014 12:16:13
Frank
Hi Karin,
super, das hat mir schon etwas weitergeholfen.
Ich habe nun noch das Problem, dass ich nicht die Anzahl der Dateien weis, die im Ordner sind. Die bräuchte ich für die Schleife zum Einfügen in die Userform. Hast Du da noch eine Idee?
Um den Code zu testen, habe ich "Anzahl" jetzt willkürlich auf den Wert 2 gesetzt. Dann zeigt mir die Userform auch beide Dateien an, die im Ordner sind.
Gruß
Frank
Private Sub UserForm_Initialize()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
Dim Pfad As String
Dim PfadL As String
Dim i As Integer
Dim FeldD() As String
Dim Anzahl As Integer
Dim Halt As Integer
Halt = 0
Pfad = ActiveWorkbook.Path
PfadL = Pfad & "\Discovererdaten Jugendliche\"
strTyp = "*.xls"
strVerzeichnis = "F:\DIENST\Excel\JutaD\Discovererdaten Jugendliche\" '"D:\Test\"
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
Anzahl = 2
On Error Resume Next
ReDim FeldD(Anzahl)
i = 1
While strDateiname  ""
FeldD(i) = strDateiname
i = i + 1
strDateiname = Dir()
Wend
For i = 1 To Anzahl
frm_Einlesen.lst_Import.AddItem (FeldD(i))
Next i
On Error GoTo 0
End Sub

Anzeige
AW: Ersatz für FileSearch in Userform
23.10.2014 12:42:23
Beverly
Hi Frank,
die Do-Schleife läuft so lange durch, wie Dateien vom festgelegten Typ im Verzeichnis vorhanden sind - du musst die Anzahl also gar nicht wissen und du kannst die Namen gleich innerhalb der Schleife der ListBox zuweisen:
    Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
Dim Pfad As String
Dim PfadL As String
Pfad = ActiveWorkbook.Path
PfadL = Pfad & "\Discovererdaten Jugendliche\"
strTyp = "*.xls"
strVerzeichnis = "F:\DIENST\Excel\JutaD\Discovererdaten Jugendliche\" '"D:\Test\"
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
strDateiname = Dir(strVerzeichnis & strTyp)
Do While strDateiname  ""
frm_Einlesen.lst_Import.AddItem strDateiname
strDateiname = Dir
Loop


Anzeige
AW: Ersatz für FileSearch in Userform
23.10.2014 13:03:24
Frank
Hi Katrin,
recht herzlichen Dank für Deine Mühe.
Ich habe offenbar viel zu kompliziert gedacht. Deine Variante funktioniert einwandfrei.
Du hast mir viele Kopfschmerzen erspart - DANKE!

Ich baue den Code nächste Woche in die Hauptdatei ein und bin dann mal gespannt, ob dann alles wieder funktioniert oder ob noch weitere Anpassungen an anderer Stelle nötig werden...
Herzliche Grüße
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige