Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Exceldatein einlesen
03.11.2005 12:38:54
Lebowski
Hallo,
ich habe mir ein Makro geschrieben das aus einem Verzeichnis Exceldateien öffnet und bestimmte Werte einliest.
Die Dateien sind normalerweise am Schluss nummeriert. (XYZ_1.xls, XYZ_2.xls, usw). Ich lese dann aus dem Verzeichniss die Anzahl der Dateien aus, somit weiß ich wieviele datein ich öffnen muss. (Im Verzeichniss sind nur die Exceldateien)
Diese werden dann über eine For -Schleife geöffnet.
Jetzt habe ich folgendes Problem, das Programm stürzt bei mir ab wenn eine Datei im Verzeichniss fehlt, sprich der Name nicht vorkommt. (XYZ_1.xls vorhanden, nächste Datei ist aber XYZ_3.xls). Sprich es sind 2 Dateien im Verzeichniss. Anz = 2.
Wie könnte ich das am besten lösen? Oder kennt jemand eine Möglichkeit bzw. geht des alle Dateinamen eines Verzeichnisses in ein Array zu schreiben. Und in einer Schleife jede datei des Arrays zu öffnen?
Bin für jede Hilfe sehr dankbar.
Mfg Lebowski

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

Betreff
Datum
Anwender
Anzeige
AW: Exceldatein einlesen
03.11.2005 12:44:15
Dr.
Hi,
On Error Resume Next
AW: Exceldatein einlesen
03.11.2005 12:51:16
Lebowski
Wo müsste ich des hinschreiben? Gibt es dazu ein Beispiel? Kenn mich jetzt noch nicht so ganz aus. Mfg Lebowksi
AW: Exceldatein einlesen
03.11.2005 13:06:43
Dr.
Innerhalb der For...Next-Schleife!
AW: Exceldatein einlesen
03.11.2005 13:08:47
Jens
Dieser Code liest alle Dateien (da "*.*") des angegebenen Verzeichnisses und der Unterverzeichnisse. Anstatt *.* kann mann auch "*.xls"
Gruß
Jens
Sub Start()
Dim intRow As Integer
Dim DirToSearch As String, FileToSearch As String

DirToSearch = InputBox("Geben Sie das Suche-Startverzeichnis ein:" _
& Chr(10) & "(z.B. C:\Excel )", "Verzeichnis wählen", "H:\Vorlagen")
FileToSearch = "*.*"
If Len(DirToSearch) = 0 Then Exit Sub
GetFilesInDirectory DirToSearch, FileToSearch
LookForDirectories DirToSearch, FileToSearch

End Sub

Private Sub LookForDirectories(ByVal DirToSearch As String, _
FileToSearch As String)
Dim counter As Integer
Dim i As Integer
Dim Directories() As String
Dim Contents As String
counter = 0
DirToSearch = DirToSearch & "\"
Contents = Dir(DirToSearch, vbDirectory)
On Error Resume Next
Do While Contents <> ""
If Contents <> "." And Contents <> ".." Then
If (GetAttr(DirToSearch & Contents) And vbDirectory) = _
vbDirectory Then
counter% = counter% + 1
ReDim Preserve Directories(counter)
Directories(counter) = DirToSearch & Contents
End If
End If
Contents = Dir()
Loop
If counter = 0 Then Exit Sub
For i = 1 To counter
GetFilesInDirectory Directories(i), FileToSearch
LookForDirectories Directories(i), FileToSearch
Next i
End Sub


Private Sub GetFilesInDirectory(ByVal DirToSearch As String, FileToSearch As String)
Dim NextFile As String
On Error GoTo errorhandler
Set fs = CreateObject("Scripting.FileSystemObject")
NextFile = Dir(DirToSearch & "\" & "*.*")
Do Until NextFile = ""
'hier steht der Code, der die Dateiöffnet, ausliest, etc
' Der Dateiname steht in:   DirToSearch & "\" & NextFile
NextFile = Dir()
DoEvents
Loop
Exit Sub
errorhandler:
MsgBox ("Fehler")
End Sub

Anzeige
AW: Exceldatein einlesen
03.11.2005 13:09:58
ede
hallo,
oder schau dir mal den nachstehnden code an, damit ermittelst du erstmal alle deine vorhandenen excel-tabellen!
bitte laufwerk anpassen

Sub Suche_Files()
Dim spalte As Integer
spalte = 1
Columns(spalte).ClearContents
'Laufwerk/Pfad
strlaufwerk = "c:\temp"
'Datei-Name/Endung
strFileName = ".xls"
With Application.FileSearch
.NewSearch
.LookIn = strlaufwerk
.SearchSubFolders = True
.Filename = strFileName
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
' gefundene Dateien anzeigen
If .Execute(SortBy:=msoSortByFileName) > 0 Then
For I = 1 To .FoundFiles.Count
Cells(I, spalte) = .FoundFiles(I)
Next I
Columns(spalte).AutoFit
End If
End With
End Sub

gruss
ede
Anzeige

245 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige