4.4k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Hallo zusammen!

Ich grüble nun schon länger über folgendes Problem, bei dem mir noch etwas der entscheidende Ansatz fehlt.

In einer bestimmten Spalte soll primär nach dem Tagesdatum gesucht und soweit vorhanden markiert werden.
Fehlt das Tagesdatum in der betreffenden Spalte, dann soll der Datenbereich auf den Vortag bzw. wenn dieser ebenfalls nicht vorhanden ist, auf den Vorvortag etc. geprüft werden.

Vielleicht hat jemand einen Tipp für mich.

Ciao

Tom

14 Antworten

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Tom,
versuch es mal so:

Sub Datum()
Dim zelle As Range
Dim bereich As Range
Set bereich = ThisWorkbook.Worksheets(1).Range("I2:I1200")
For Each zelle In bereich
If zelle = Date - 2 Then zelle.Select
If zelle = Date - 1 Then zelle.Select
If zelle = Date Then zelle.Select
Next zelle
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

noch ein Beispiel

gruss nighty

gesucht wird das aktuelle Datum
bei 0 treffer um 1 tag verkürzt,bis es zum treffer kommt


Sub DatumSuchen()
Dim MeinDatum As Range
Dim AZaehler As Integer
Do
Set MeinDatum = Cells.Find(What:=CDate(Format(Date - AZaehler)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not MeinDatum Is Nothing Then
Cells(MeinDatum.Row, MeinDatum.Column).Select
Else
AZaehler = AZaehler + 1
End If
Loop Until Not MeinDatum Is Nothing
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

gruss nighty

für einen begrenzten Bereich waeren 2 Anweisungen zu aendern

bei der set Anweisung

1)
Cells austauschen gegen z.b. Range("C6:C100")

+

2)
After:=Range("A1") austauschen gegen z.b. After:=Range("C6")
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

narrensicher duerfte eine vorige Formatierung sein

gruss nighty

Sub DatumSuchen()
Dim MeinDatum As Range
Dim AZaehler As Integer
Columns("A:Z").NumberFormat = "dd/mm/yy"
Do
Set MeinDatum = Cells.Find(What:=CDate(Format(Date - AZaehler)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not MeinDatum Is Nothing Then
Cells(MeinDatum.Row, MeinDatum.Column).Select
Else
AZaehler = AZaehler + 1
End If
Loop Until Not MeinDatum Is Nothing
End Sub
...