Arbeitsmappe nach Datum durchsuchen VBA
13.03.2004 08:25:19
Wolfgang
hatte mich vorgestern bereits mit meiner Frage an das Forum gewandt und auch Hilfestellung erhalten. Komme aber irgendwie nicht weiter. Mittels Makro/Code aus der Excel-CD von Herrn Herber -131801- (siehe auch unten) soll erreicht werden, dass eine Arbeitsmappe vollständig nach Datensätzen mit dem jeweiligen, in einer UF angegeb. Datum (steht i.d. Fall in Spalte B), durchsucht wird.
Das Ergebnis soll, wie auch in der Beispielsmappe, in eine neue Mappe kopiert werden. - Grundsätzlich läuft das auch so bei mir; Ich kriege das nur mit diesem Datum "13.03.04 oder 13.03.2004" nicht hin.- Lasse ich die Punkte weg und formatiere auch das Datumsformat für die Eingabe in die jeweiligen Tabellenblätter ohne Punkte, also eigentlich nur noch eine Zahlenkolonne, zeigt mir das Programm alle Datensätze an.- Was mache ich falsch bzw. was muß ich ändern (habe vorgestern schon auf Hinweis von Nepomuk -CDate- eingesetzt, funktioniert aber auch nicht) - Wer kann mir helfen?
Da scheint sich irgendetwas mit CDate und CLng oder so zu beißen.
Vielleicht noch eine Zusatzfrage, sofern es mit Datum überhaupt klappen könnte,
wäre es auch denkbar, gleichen Code für Datumssuche "von-bis" zu verwenden?
Hier der Code,abgewandelt aus der Beispielmappe 131801:
Sub MultiSuche(strSearch As Long)
Dim wks As Worksheet
Dim rngFind As Range
Dim lngRow As Long
Dim strFind As String
Workbooks.Add
For Each wks In ThisWorkbook.Worksheets
'CDate auf Hinweis von Nepomuk ergänzt
Set rngFind = wks.Cells.Find(CDate(strSearch))
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
lngRow = lngRow + 1
'Suche in Spalte B ?
wks.Range(wks.Cells(rngFind.Row, 2), _
wks.Cells(rngFind.Row, 18)).Copy _
Cells(lngRow, 1)
Set rngFind = wks.Cells.FindNext(After:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
Next wks
End Sub
'User form -Abfrage
Private Sub cmdSearch_Click()
If txtSearch.Text = "" Then Exit Sub
Call MultiSuche(CLng(txtSearch.Text))
End Sub