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

Dateien aus Verzeichnis sortieren

Dateien aus Verzeichnis sortieren
19.08.2004 13:11:12
Berta
Hallo Leute,
brauche mal einen guten Tip und Rat.
Ich lese in einer Listbox die Einträge aus einem Verzeichnis ein.
Einträge = xls Dateien
z.B Apr2004.xls, Aug2004.xls
Das funktioniert auch alles wunderbar, über Dir(path ...)
Nun möchte ich aber, das die Ausgabe sortiert erfolgt!

Vielen Dank im Voraus!
Gruß Berta

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien aus Verzeichnis sortieren
EtoPHG
Hallo Berta,
Kannst Du mal den Code zum Füllen Deiner Listbox ins Forum stellen.
Dann kann man beim Füllen schon sortieren.
Gruss Hansueli
AW: Dateien aus Verzeichnis sortieren
19.08.2004 13:51:09
Berta
kann ich tun!
Hier mein kleiner Quellcode:

Private Sub UserForm_Initialize()
path = ThisWorkbook.path & "\AP\"
Dim Dateiname As String
Dim i As Integer
ListBox1.Clear
Dateiname = Dir(path & "*.xls")
ListBox1.AddItem Dateiname
While Dateiname <> ""
Dateiname = Dir
ListBox1.AddItem Dateiname
Wend
End Sub

Reicht das aus? Danke
AW: Dateien aus Verzeichnis sortieren
EtoPHG
Hallo Berta,
Nach Deinem Code, müssten die Einträge in der Listbox in alphabetischer Reihenfolge erfolgen. Was willst Du genau für eine Sortierung ?
Gruss Hansueli
Anzeige
AW: Dateien aus Verzeichnis sortieren
Berta
Der dateiname besteht aus den ersten drei Buchstaben des Monats und dann das Jahr.
Nun möchte ich das Jan 2004 als erstes in der Liste steht, bis zu Dez 2004 als letztes, dann müßte er wieder (wenn es dann so weit ist) mit Jan 2005 anfangen.
Ich kann mir denken, das ich dann den Dateinamen wieder wandeln muss
da fangen dann meine Probleme an.
Ich danke dir schon mal, Hansueli
Gruss berta
AW: Dateien aus Verzeichnis sortieren
EtoPHG
Berta,
Ich sehe das Problem. Die Lösung verursacht ziemlichen Aufwand.
Im Moment habe ich die Zeit nicht Dier den Code zu schreiben.
Ein Ansatz wäre, die Dateiliste in das Worksheet einzulesen, zu formatieren und anschliessend zu sortieren, dann die sortierte Liste einzulesen.
Vielleicht finde ich heute Abend Zeit eine Lösung zu erarbeiten.
Gruss Hansueli
Anzeige
AW: Dateien aus Verzeichnis sortieren
20.08.2004 08:16:10
Berta
Hi Hansueli,
wäre schön wenn du mir da weiter helfen könntest.
Ich werde versuchen deinen Vorschlag umzusetzen. Mal sehen wie weit ich da komme.
Gruß Berta
AW: Dateien aus Verzeichnis sortieren
EtoPHG
Hallo Berta,
Dein Problem war nicht so einfach zu lösen...
Trotzdem glaube ich Dein Problem gelöst zu haben.
Hier ist der Code für die Userform und eine zusätzliche Funktion um einen String der Form "MMM jjjj" in eine Zahl umzuwandeln und anschliessend die Listbox in der richtigen Reihenfolge zu füllen.
Eventuell musst Du in der Funktion die Monatsnamen so anpassen, dass sie Deinen abgespeicherten Dateinamen entsprechen. Also wenn Du z.B. die Datei vom März unter MAR 2004.xls abgespeichert hast, den aMonthNames(3) auf "MAR" ändern.

Private Sub UserForm_Initialize()
Dim sPath As String
Dim sFullName As String
Dim dDateiName As Double
Dim ix As Integer
ListBox1.Clear
sPath = "...Hier den Pfad eintragen...."
sFullName = Dir(sPath & "*.xls")
While sFullName <> ""
dDateiName = getDateVal(Left(sFullName, InStr(1, sFullName, ".") - 1))
If dDateiName > 0 Then
For ix = 0 To ListBox1.ListCount - 1
If getDateVal(Left(ListBox1.List(ix), InStr(1, ListBox1.List(ix), ".") - 1)) > dDateiName Then
ListBox1.AddItem sFullName, ix
Exit For
End If
Next ix
If ix = ListBox1.ListCount Then ListBox1.AddItem sFullName
End If
sFullName = Dir
Wend
End Sub


Private Function getDateVal(sMonYear As String) As Double
' Wandelt einen string vom typ "Mrz 2017" in eine Zahl 201703 um
' Gibt 0 zurück bei falschem string (z.B. "März 2017")
Dim aMonthNames(12) As String
Dim ix As Integer
aMonthNames(1) = "JAN"
aMonthNames(2) = "FEB"
aMonthNames(3) = "MRZ"
aMonthNames(4) = "APR"
aMonthNames(5) = "MAI"
aMonthNames(6) = "JUN"
aMonthNames(7) = "JUL"
aMonthNames(8) = "AUG"
aMonthNames(9) = "SEP"
aMonthNames(10) = "OKT"
aMonthNames(11) = "NOV"
aMonthNames(12) = "DEZ"
getDateVal = Val(Right(sMonYear, 4)) * 100
For ix = 1 To 12
If Left(UCase(sMonYear), 3) = aMonthNames(ix) Then
getDateVal = getDateVal + ix
Exit Function
End If
Next ix
getDateVal = 0
Exit Function
End Function

Mir hat das Problem wieder einige Augen geöffnet, was Excel kann und was nicht.
Mailto:hgoeldi@compuserve.com
Gruss Hansueli
Anzeige
AW: Dateien aus Verzeichnis sortieren
20.08.2004 11:31:20
Berta
Danke Hansueli!!!!!!!
Werde es probieren und dir Meldung geben, ob es in meinem kleinen Programm läuft.
Excel ist ein tolles Programm, mit VB aber noch viel besser (wenn man weis wie) ;-)
Danke nochmal für die schnell Hilfe!
Gruß Berta

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige