Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datum aus Liste suchen

Betrifft: Datum aus Liste suchen von: Jens
Geschrieben am: 16.11.2012 10:53:20

Hallo Leute,

hab da mal wieder ein problem.

Ich hab in einer Tabelle(Daten) in Spalte A verschiedene Datumseinträge.
Jetzt möchte ich per vba mit folgendem Makro einen den ersten Tag im Monat suchen.
Klappt auch wenn wenn der Monat vorhanden ist.
Bsp. in der Liste steht der 06.11.2012, wenn ich einen Monat auswähle vor November
klappt es auch und er sagt a=nothing.
Wenn ich aber Dezember auswähle nimmt er den 06.11.2012.
Kann vllt. jemand den fehler in meinem code finden?

Datum = DateSerial(Sheets("Admin").Cells(4, 2), Sheets("Admin").Cells(5, 2), 1)
With Sheets("daten").Range("a3:a200000")
Set a = .Find(Month(Datum), LookIn:=xlValues)
If Not a Is Nothing Then
End If
End With

Vielen Dank im vorraus

  

Betrifft: AW: Datum aus Liste suchen von: ChrisL
Geschrieben am: 16.11.2012 13:31:15

Hi Jens

Hinter dem Datum steht eine Zahl, weshalb du den Monat nicht als Text suchen kannst. Am einfachsten wärs mit einer For-Next Schleife.

Ohne Schleife hätte ich folgende Idee, bin mir aber nicht sicher, ob es in jedem Fall funktioniert u.a. gehe ich davon aus, dass die Datumsliste sortiert ist. Kannst ja mal testen.

Sub t()
Dim Datum As Date
Datum = DateSerial(Sheets("Admin").Cells(4, 2), Sheets("Admin").Cells(5, 2), 1)
MsgBox FindDate(Datum)
End Sub

Private Function FindDate(Datum As Date) As Date
On Error GoTo errorhandler

With Sheets("daten")

    FindDate = .Cells(Application.Match(CLng(Datum), .Columns(1), 0), 1)
    Exit Function
errorhandler:
    FindDate = .Cells(Application.Match(CLng(Datum), .Columns(1), 1) + 1, 1)

End With
End Function

cu
Chris


 

Beiträge aus den Excel-Beispielen zum Thema "Datum aus Liste suchen"