ich lese aus einer Datei eine Liste mit Datumsangaben in eine Userform.
In der Userform soll dann in 2 Listboxen jeweils ein Datum ausgewählt werden.
In der Listbox 2 muss das Datum später liegen als in Listbox 1.
Soweit funzt das auch.
Allerdings wird die Datei mittlerweile lang und länger und es existieren auch mehrere Einträge mit dem gleichen Datum. Das ist eine ewige scrollerei.
Ich möchte nun gerne in der Listbox 1 das das aktuelle Datum als Position hinterlegt ist. So muss nicht ewig gescrollt werden. In der Listbox 2 soll dann nach Auswahl des benötigten Datums in Listbox1 das gleiche Datum erscheinen um auch hier nicht ewig scrollen zu müssen.
Weiterhin soll jedes Datum nur einmal in den Listboxen erscheinen.
Die initialisierung habe ich folgendermaßen gelöst:
Private Sub UserForm_Initialize()
Dim LA% 'Anfangsdatum
Dim LE% 'Endedatum
LA = Worksheets("Erfassung").Cells(Rows.Count, 1).End(xlUp).Row
ListBox1.RowSource = "Erfassung!A8:a" & LA
ListBox1.ListIndex = 0
LE = Worksheets("Erfassung").Cells(Rows.Count, 1).End(xlUp).Row
ListBox2.RowSource = "Erfassung!A8:a" & LE
ListBox2.ListIndex = 0
End Sub
Verarbeitet werden dann die gewonnenen Daten folgendermaßen:
Private Sub cmdOK_Click()
'Datum übernehmen und nicht benötigte Bereiche ausblenden
Dim LA As Date
Dim LE As Date
Dim a%
Dim b%
For a = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(a) = True Then
LA = ListBox1.List(a, 0)
Application.ScreenUpdating = False
Worksheets("Erfassung").Range("n1") = LA 'Anfangsdatum ablegen
Application.ScreenUpdating = True
End If
Next a
For b = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(b) = True Then
LE = ListBox2.List(b, 0)
Application.ScreenUpdating = False
Worksheets("Erfassung").Range("n2") = LE 'Endedatum ablegen
Application.ScreenUpdating = True
End If
Next b
Sort_1 'Sortieren
drucken1
Sort_ursprung 'Ursprungsreihenfolge wiederherstellen
Unload Me
End
End Sub
Wie kann ich das gewünscht bewerkstelligen, hab da keinen Plan.
Danke schon mal im Voraus für die Mühe.
Gruß Heinz