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

datumswerte in listbox aufsteigend

datumswerte in listbox aufsteigend
13.03.2005 18:07:26
louis
hallo forum,
einen schönen sonntag wünsche ich erst ein mal.
er könnte schöner sein wenn ich folgendes in den griff bekämme.
ich habe eine userform listbox in die ich mir xlsdatein anzeigen lasse die als dateinamen das datum des speichertages haben.
also(03.12.2004.xls,05.01.2005.xls usw)
jetzt möchte ich das die listbox mir die datumswerte absteigend sortiert.
im moment sortiert sie mir die daten nach den ersten beiden zahlen, also nach dem tag. ich möchte aber nach dem ganzen datum sortiert haben.
ich hoffe ich habe mich verständlich ausgedrückt.
über hilfe würde ich mich sehr freuen.
mfg
louis

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: datumswerte in listbox aufsteigend
13.03.2005 18:19:00
Ramses
Hallo
schau mal 4 Beiträge tiefer ob das auch geht :-)
Gruss Rainer
AW: datumswerte in listbox aufsteigend
13.03.2005 18:31:56
louis
hallo rainer,
danke für deine antwort.
boa, da brauch ich jetzt erst mal eine zeit zu.
ich hoffe ich darf mich noch einmal melden wenn es nicht klappt.
mfg
louis
AW: datumswerte in listbox aufsteigend
13.03.2005 23:05:38
louis
ich bin's leider noch einmal. mit dem codevorschlag von ramses komme ich nicht wirklich zurecht, dafür bin ich anscheinend zu blöd.
ich poste jetzt erst mal den code. ich versuche die ganze zeit die variablen richtig zu deklarieren. bekomme das aber nicht hin.

Private Sub list_Click()
Dim iCounter As Integer
lstFiles.Clear
With Application.FileSearch
.LookIn = "E:\aa\bb"
.FileType = msoFileTypeExcelWorkbooks
.Execute
For iCounter = 1 To .FoundFiles.Count
lstFiles.AddItem Dir$(.FoundFiles(iCounter))
Next iCounter
End With
End Sub


Private Sub CommandButton2_Click()
Dim X As Integer, N As Integer
Dim Y As Integer
With lstFiles
For X = 0 To .ListCount - 1
For iNext = iLast + 1 To .ListCount - 1
If .List(X) > .List(N) Then
Y = .List(X)
.List(X) = .List(N)
.List(N) = Y
End If
Next N
Next X
End With
End Sub

habe schon versucht die variablen als date, string und wat nicht alles zu deklarieren aber das geht auch nicht. es muss doch möglich sein das zahlenformat der variablen so zu verändern das ereine 22.11.2005 als datum erkennt und demensprechent sortiert.
die recherche habe ich jetzt durch bin da aber auch nicht weiter gekommen.
die letzte möglichkeit die ich sehe ist alles in ein sheet einzutragen,da zu sortieren und dann in die listbox ein zu tragen. das ist aber nicht unbeding das gelbe vom ei.
wenn noch jemand einen anstoss hat oder einen tip in die richtige richtung würde ich mich freuen.
mfg von einem ziemlich gecknickten
louis
Anzeige
AW: datumswerte in listbox aufsteigend
14.03.2005 00:11:03
Bert
Wenn du in der Listbox die Dateinamen einschließlich der Extension brauchst,
musst du die vorm Sortieren naürlich eleminieren.
Bert
Von hinten durch die Brust ins Auge ... :-)
14.03.2005 00:12:26
Ramses
Hallo
Voraussetzung ist, dass die Dateinamen wirklich im Format "01.01.2005.xls" vorliegen

Private Sub CommandButton4_Click()
'(C) by Ramses
'Sortiert Filenamen die im Format "01.01.2005.xls" vorliegen
'korrekt aufsteigend und weist die Liste einer Listbox zu
Dim iCounter As Integer, tmpStr As String
Dim i As Long, Temp As String
With Application.FileSearch
.LookIn = "D:\Rainer"
.FileType = msoFileTypeExcelWorkbooks
.Execute
ReDim FileArr(.FoundFiles.Count)
'Filenamen modifizieren, da die normale Sort-Methode
'nur bis zum ersten Punkt sortiert
For iCounter = 1 To .FoundFiles.Count
tmpStr = Dir(.FoundFiles(iCounter))
tmpStr = WorksheetFunction.Substitute(Left(tmpStr, 10), ".", "")
FileArr(iCounter) = tmpStr
Next iCounter
End With
'Sortierung durchführen
QuickSort FileArr, LBound(FileArr), UBound(FileArr)
'Filenamen rekonstruieren
For i = LBound(FileArr) To UBound(FileArr)
If Len(FileArr(i)) = 7 Then
Temp = Right(FileArr(i), 4)
Temp = Left(Right(FileArr(i), 6), 2) & "." & Temp
Temp = "0" & Left(FileArr(i), 1) & "." & Temp
FileArr(i) = Temp & ".xls"
ElseIf Len(FileArr(i)) = 8 Then
Temp = Right(FileArr(i), 4)
Temp = Left(Right(FileArr(i), 6), 2) & "." & Temp
Temp = Left(FileArr(i), 2) & "." & Temp
FileArr(i) = Temp & ".xls"
End If
Next
'Quot erat demonstrandum
Me.ListBox1.Clear
Me.ListBox1.List = FileArr
End Sub

Der Code muss auch noch mit in die UF.
Der ist aber nicht von mir :-)
Public Sub QuickSort(toSortArray() As String, ByVal LB As Single, ByVal UB As Single)
'String Array sortieren, by ActiveVB
Dim P1 As Single
Dim P2 As Single
Dim ref As String
Dim Temp As String
P1 = LB
P2 = UB
ref = toSortArray((P1 + P2) / 2)
Do
Do While (toSortArray(P1) P1 = P1 + 1
Loop
Do While (toSortArray(P2) > ref)
P2 = P2 - 1
Loop
If P1 Temp = toSortArray(P1)
toSortArray(P1) = toSortArray(P2)
toSortArray(P2) = Temp
P1 = P1 + 1
P2 = P2 - 1
End If
Loop Until (P1 > P2)
If LB If P1 End Sub
Gruss Rainer
Anzeige
AW: Von hinten durch die Brust ins Auge ... :-)
14.03.2005 16:17:41
louis
hallo rainer,
ein ganz dickes dankeschön für deine hilfe ohne die forenarbeit einiger leute hier wäre ich ganz schön hilflos.
auch auf die gefahr hihn das ich jetzt als lutscher abgestellt werde aber ich bekomme den code nicht ans laufen. ich versuche es jetzt schon den ganzen tag.
in der zeile QuickSort FileArr, LBound(FileArr), UBound(FileArr) makiert er mir FileArr blau (das sub wird gelb markiert) und die fehlermeldung lautet Unverträglicher Typ: Datenfeld oder benutzerdefinierter typ erwartet.
ich habe dann einfach diese ganze zeile entfernt was nach meinem verständnis dazu führen müsste das mir die daten ganz normal in der listbox angezeigt werden sollten nun erhalte ich aber folgende fehlermeldung.
Me.ListBox1.List = FileArr wird gelb fehlermeldung: Eigenschaft value konnte nicht gesetzt werden. Typenkonflikt
wenn du dich nicht mehr meldest kann ich das auch verstehen.
mein problem ist einfach das ich hier learning by doing veranstallte und immer eine immense zeit verbrauche bis ich was kapiert habe.
vielen dank das ihr mich hier ertragt
mfg
louis
Anzeige
AW: Von hinten durch die Brust ins Auge ... :-)
14.03.2005 18:14:01
Ramses
Hallo
das ist ein dummer Kopierfehler :-)
In die erste Zeile, also noch VOR, "Private Sub Commandbutton_Click" müssen diese Einträge stehen:
Option Explicit
Option Base 1
Public FileArr() As String
Sorry,...
Gruss Rainer
AW: Von hinten durch die Brust ins Auge ... :-)
14.03.2005 19:20:54
louis
hallo rainer,
danke für deine geduld und mühe mit mir.
Public FileArr() As String mit dieser zeile habe ich noch so meine probleme
füge ich sie nach Option Base 1 ein bekomme ich den fehler: Konstanten, Zeichenfolgen fester länge . . . sind als Public Elemente in Objektmodulen nicht zugelassen.
Nehme ich die Klammern() weg
wird mir ReDim FileArr blau markiert und es kommt eine fehlermeldung : Erwartet Datenfeld
Ersetzte ich Public FileArr() As String durch Dim FileArr() As String und bringe das ganze in Private Sub CommandButton4_Click() unter wird die listbox zwar gefüllt aber nicht sortiert.
wo mache ich da noch was falsch?
mir ist das schon bald peinlich
mfg
louis
Anzeige
AW: Von hinten durch die Brust ins Auge ... :-)
14.03.2005 19:26:11
Ramses
Hallo
kann ich zwar nicht nachvollziehen, aber setz mal die Zeile
Public FileArr() As String
in ein Modul deiner Mappe in die erste Zeile
Gruss Rainer
AW: Von hinten durch die Brust ins Auge ... :-)
14.03.2005 20:37:18
louis
hallo rainer,
ich habe die zeile Public FileArr() As String
in ein extra modul gestellt. In die listbox eintragen geht jetzt.
wenn ich das code stück filename rekonstruieren weglasse werden mir die daten auch ohne punkte und xls angezeigt.das klappt also auch bestens.
aber sortiert wird jetzt als ganze zahl.
als beispiel 01.01.2005,04.01.2005,01.02.20005
wird so sortiert
01.01.2005
01.02.2005
04.01.2005
das liegt wohl an dem code der nicht von dir ist.
da brauch ich noch ein bischen zeit für um mir den aus einander zu nehmen.
danke noch mal für deine super hilfe
mfg
louis
Anzeige
nochmal ein ganz dickes lob !!!
15.03.2005 20:18:19
louis
hallo alle miteinander,
läuft jetzt.
habe zwar eine ewigkeit dafür gebraucht und ohne eure hilfe längst erschossen, naja.
ich habe mir diese variante zusammengebaut.

Private Sub CommandButton2_Click()
Dim iCounter As Integer, tmpStr As String
Dim N As Integer, Y As String
With Application.FileSearch
.LookIn = "E:\aa\bb"
.FileType = msoFileTypeExcelWorkbooks
.Execute
ReDim FileArr(.FoundFiles.Count)
For iCounter = 1 To .FoundFiles.Count
tmpStr = Dir(.FoundFiles(iCounter))
tmpStr = WorksheetFunction.Substitute(Left(tmpStr, 10), "", "")
tmpStr = Format(CDate(tmpStr), "dd.mm.yyyy")
FileArr(iCounter) = tmpStr
Next iCounter
End With
Me.ListBox1.Clear
Me.ListBox1.list() = FileArr
End Sub

ich muss zwar jetzt die zu suchenden files in diesem format "yyyy.mm.dd" speichern aber das ist nocg zu verkraften.
ich möchte mich noch mal bei rainer bedanken und auch entschuldigen. du hast dir so viel mühe mit mir gemacht und ich depp krieg den code nicht ans laufen. ich habe es stundenlang probiert ich bring es nicht hin. aber ich habe einiges mitgenommen.
1a forenarbeit hier. vieleicht kann ich mal in ein paar jahren revanchieren.
macht weiter so und vielen herzlichen dank.
mfg
louis
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige