Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
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

Hilfe mit kleiner Code-Anpassung - Dateiimport

Hilfe mit kleiner Code-Anpassung - Dateiimport
04.03.2013 11:29:16
Tim
Hallo an alle,
ich verwende folgenden Code, mit dem ich die Dateinamen aus einem Ordner auslese und in eine Tabelle schreibe.
Das funktioniert soweit gut.
Ich suche nun nach einem Weg, die Dateinamen aus drei verschiedenen Ordnern statt nur aus einem auszulesen (die Ordner sind dabei immer die gleichen).
Kann mir jemand sagen, was ich dazu ändern muss ?
Wichtig ist mir dabei, dass die Dateinamen am Ende untereinander geschrieben werden, so dass die einzelnen Ordner sich nicht gegenseitig überschreiben.
Sub ImportFiles()
Dim dlg As FileDialog, TB, SP%, ZE&
Dim Si, Ext$, Datei$
Set TB = Worksheets(3)
Set dlg = Application.FileDialog(msoFileDialogFolderPicker) 'folder picker
SP = 19 'column for temporary file import
ZE = 2 'row for temporary file import
Application.ScreenUpdating = False
Worksheets(3).Range("S2:S1000").ClearContents
If dlg.Show = True Then
For Each Si In dlg.SelectedItems
Ext = "*.*"   'or "*.xls*" for specific file extensions only
Si = IIf(Right(Si, 1) = "\", Si, Si & "\")
Datei = Dir(Si & Ext)
Do While Len(Datei) > 0
TB.Cells(ZE, SP) = Datei
ZE = ZE + 1
Datei = Dir() 'next file
Loop
Next
End If
'tranferring temporary file list to column A
With ActiveWorkbook.Worksheets(3)
.Range("S2:S1000").Copy
.Range("A2:A1000").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
.Range("S2:S1000").ClearContents
Application.ScreenUpdating = True
Application.Goto .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
End Sub
Bin Euch für jeden Tipp dankbar.
VG und vielen Dank im Voraus,
Tim

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe mit kleiner Code-Anpassung - Dateiimport
04.03.2013 11:50:13
Rudi
Hallo,
msoFileDialogFolderPicker erlaubt keine Mehrfachauswahl.
Eine Möglichkeit:
  Dim TB, SP%, ZE&, arrPfade, i As Integer, Datei As String
arrPfade = Array("c:\test\", "d:\test\", "f:\test\")  'anpassen
Set TB = Worksheets(3)
SP = 19 'column for temporary file import
ZE = 2 'row for temporary file import
Const Ext = "*.*"
Application.ScreenUpdating = False
TB.Range("S2:S1000").ClearContents
For i = 0 To UBound(arrPfade)
If Right(arrPfade(i), 1)  "\" Then arrPfade(i) = arrPfade(i) & "\"
Datei = Dir(arrPfade(i) & Ext)
Do While Len(Datei) > 0
TB.Cells(ZE, SP) = Datei
ZE = ZE + 1
Datei = Dir() 'next file
Loop
Next

Gruß
Rudi

Anzeige
AW: Hilfe mit kleiner Code-Anpassung - Dateiimport
04.03.2013 12:13:04
Tim
Hallo Rudi,
vielen Dank für die schnelle Antwort - damit klappt es bestens ! :-)
VG und einen schönen Tag noch,
Tim

AW: Hilfe mit kleiner Code-Anpassung - Dateiimport
04.03.2013 12:06:37
fcs
Hallo Tim,
versuche es mal mit den folgenden Anpassungen.
Gruß
Franz
Sub ImportFiles()
Dim dlg As FileDialog, TB, SP%, ZE&
Dim Si, Ext$, Datei$
Set TB = Worksheets(3)
Set dlg = Application.FileDialog(msoFileDialogFolderPicker) 'folder picker
SP = 19 'column for temporary file import
ZE = 2 'row for temporary file import
Application.ScreenUpdating = False
TB.Range("S2:S1000").ClearContents
If dlg.Show = True Then
For Each Si In dlg.SelectedItems
Ext = "*.*"   'or "*.xls*" for specific file extensions only
Si = IIf(Right(Si, 1) = "\", Si, Si & "\")
Datei = Dir(Si & Ext)
Do While Len(Datei) > 0
TB.Cells(ZE, SP) = Datei
ZE = ZE + 1
Datei = Dir() 'next file
Loop
Next
End If
'tranferring temporary file list to column A
With TB
ZE = .Cells(.Rows.Count, SP).End(xlUp).Row
If ZE >= 2 Then
.Range(.Cells(2, SP), .Cells(ZE, SP)).Copy
ZE = .Cells(.Rows.Count, 1).End(xlUp).Row
If ZE 

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige