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

Dateien von Verzeichnis einlesen

Dateien von Verzeichnis einlesen
27.03.2003 07:31:52
DaPetra
Guten Morgen,

also mit folgenden Code habe ich jetzt verwirklicht das mir alle Exceldateien im Unterverzeichnis ohne Dateierweiterung in einer Combobox zur Auswahl angezeigt werden, leider habe ich jetzt ein Problem welches mir den Schönheitsschlaf geraubt hat und zwar würde ich gerne in meiner Combobox zwei Dateien (z.B. Verwaltung.xls und Test.xls) falls sie vorhanden sind nicht anzeigen.

Der Code:

Private Sub UserForm_Initialize()
Dim Verzeichnis() As String
Dim pPfad As String
Dim Dateiname As String
Dim I As Integer
Dim Anzahl As Integer
Dim StrTyp As String
Dim strDatei As String
pMonat = ThisWorkbook.Worksheets("Startseite").Range("C9")
pPfad = ThisWorkbook.Path & "\" & pMonat & "\"
    Anzahl = 0
StrTyp = "*.xls"
Dateiname = Dir(pPfad & StrTyp)
    I = 3
Do While Dateiname <> ""
Anzahl = Anzahl + 1
ReDim Preserve Verzeichnis(1 To Anzahl)
Verzeichnis(Anzahl) = Dateiname
Dateiname = Dir
Loop
Sort Verzeichnis, LBound(Verzeichnis), UBound(Verzeichnis)
For I = 1 To Anzahl Step 1
Abfragefenster.ComboBox1.AddItem Mid(Verzeichnis(I), 1, Len(Verzeichnis(I)) - 4)
Next I
Abfragefenster.ComboBox1.ListIndex = 0
Abfragefenster.ComboBox1.SetFocus
Abfragefenster.ComboBox1.Style = fmStyleDropDownList
End Sub

Private Sub Sort(SortArray, L, R)
Dim I, J, x, y
I = L
J = R
x = SortArray((L + R) / 2)
While (I <= J)
While (SortArray(I) < x And I < R)
I = I + 1
Wend
While (x < SortArray(J) And J > L)
J = J - 1
Wend
If (I <= J) Then
y = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = y
I = I + 1
J = J - 1
End If
Wend
If (L < J) Then Call Sort(SortArray, L, J)
If (I < R) Then Call Sort(SortArray, I, R)
End Sub

Kann mir von Euch jemand sagen wo ich da was ändern muß damit es klappt.

Schönen Tag noch ..
Petra

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

Betreff
Datum
Anwender
Anzeige
Re: Dateien von Verzeichnis einlesen
27.03.2003 07:40:49
Forum

Hallo Petra

ich habe mal einen vorhandenen Code von mir verändert.

Gruß

Re: Dateien von Verzeichnis einlesen
27.03.2003 08:20:19
Dapetra

Hallo,

also es funktioniert nicht ganz ich habe die Zeile nach endif
gelöscht und die If Abfrage gleich hinter der Do while eingefügt
(weil es sonst in der Combobox Leerzeilen gibt) aber es geht nur
mit einer If z.B. If Dateiname <> "test.xls" Then wenn ich daraus
eine If Dateiname <> "test.xls" and Dateiname <> "Verwaltung.xls" then mache dann geht es nicht mehr (auch wenn ich anstatt and ein or mache nicht)

Kann es sein das man das zwei Vergleiche anderst verknüpfen muß oder weist Du warum das nicht funktioniert ?

Tschüß Petra

Anzeige
Re: Dateien von Verzeichnis einlesen
27.03.2003 09:15:43
Felix

Hallo Petra,

ich interessiere mich auch gerade für dieses Problem und habe es daher mal ausprobiert, so funktioniert es bei mir:

(So sind die Leerzeilen weg)


Sub Dateiliste()
Dim Verzeichnis() As String
Dim Anzahl As Integer
Dim I As Integer
Dim strVerzeichnis As String
Dim StrDatei As String
Dim StrTyp As String
Dim Dateiname As String
Anzahl = 0
' Liste leeren
Sheets(1).ListBox1.Clear

' Liste erstellen
strVerzeichnis = "C:\intelliFORM\Schülerbeurteilungen\"
StrTyp = "*.xls"
Dateiname = Dir(strVerzeichnis & StrTyp)
I = 3
Do While Dateiname <> ""
If Dateiname <> "Test.xls" Then
If Dateiname <> "Verwaltung.xls" Then
Anzahl = Anzahl + 1
ReDim Preserve Verzeichnis(1 To Anzahl)
' Veränderung für DaPetra
' z.B. Verwaltung.xls und Test.xls) falls sie vorhanden sind nicht anzeigen
Verzeichnis(Anzahl) = Mid(Dateiname, 1, Len(Dateiname) - 4)
End If
End If
' Verzeichnis(Anzahl) = Dateiname
Dateiname = Dir
Loop
' Dateinamen in Listbox1 schreiben
Sort_A_Z Verzeichnis, LBound(Verzeichnis), UBound(Verzeichnis)
For I = Anzahl To 1 Step -1
Sheets(1).ListBox1.AddItem Verzeichnis(I)
Next I
End Sub

Gruß
Felix



Anzeige
Ergänzung
27.03.2003 09:23:21
Felix

Hallo Petra,

als Ergänzung in dem Code hatte ich eine Veränderung:

Meine Listbox ist in einem Tabellenblatt daher müßtest du in zwei Zeilen jeweils "Sheets(1).ListBox1" auf "ListBox1" ändern.

gruß
Felix

Re: Dateien von Verzeichnis einlesen
27.03.2003 10:34:27
dapetra

Genau so habe ich das Problem auch gelöst [STOLZ]

Gruß Petra

Re: Dateien von Verzeichnis einlesen
27.03.2003 11:25:49
Forum

Hallo Petra

bei mir läuft der Code Fehlerfrei.

Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige