Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle mit heutigem Datum finden

Zelle mit heutigem Datum finden
05.09.2008 11:46:00
Steffi
Hallo liebe Spezialisten,
hier im Forum hat man mir den unten stehenden Code gezeigt um im Bereich "F:F" die Zelle mit dem heutigen Datum zu finden. Das klappt soweit auch prima :-)
Wenn das Datum jedoch per Formel wie z.B. =HEUTE() erzeugt wurde, funktioniert der Code nicht.
Könnt Ihr mir da helfen ?
Lieben Gruß
Steffi

Sub Heutige_Datum_finden()
'Findet die Zelle mit dem heutigen Datum ()
Dim rg As Range
Set rg = ActiveSheet.Columns("F:F").Find(Date, , xlFormulas)
If Not rg Is Nothing Then
rg.Activate
Else
MsgBox "Datum " & Date & " leider nicht gefunden"
End If
Set rg = Nothing
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zelle mit heutigem Datum finden
05.09.2008 11:55:00
Mac4
Hi Steffi,
Set rg = ActiveSheet.Columns("F:F").Find(Date, , xlValues)
Marc
Danke
05.09.2008 12:01:00
Steffi
Hallo Marc,
kleine Änderung, mit großer Wirkung :-)
Klappt bestens, und ich habe wieder ein wenig dazu gelernt.
Vielen Dank
Steffi
AW: Danke
05.09.2008 13:06:28
Steffi
Doch noch ein kleines Problem, wenn ich die Zellen als "TT.MM.JJJJ" formatiert habe klappt alles bestens, ich habe die Zellen aber im "T.MMM." Format.
Hast du hier auch noch einen Tipp für mich?
Gruß
Steffi
Anzeige
AW: Danke
05.09.2008 13:48:00
David
Hallo Steffi,
Also bei mir klappt das auch mit dem anderen Format. Die Formatierung sollte darauf keinen Einfluß haben, da ein Datum für Excel nur eine Zahl ist. Nur die Anzeige ändert sich durch die Formatierung. Erstelle in einer Zelle mal eine Formel, die auf deine Datumsspalte zeigt und formatiere diese anschließend als Dezimalzahl. Was wird dann angezeigt?
Gruß
David
Anzeige
AW: Danke
05.09.2008 14:03:52
Steffi
Hallo David,
ich habe das noch mal in einer neuen Datei probiert.
Sobald ich das Format von TT.MM.JJJJ auf T.MMM ändere, wird das Datum nicht mehr gefunden.
Würde mich riesig freuen, wenn wir das Problem lösen können.
LG. Steffi
AW: Danke
05.09.2008 15:11:00
David
Hallo Steffi,
leider muss ich passen. Ich habe jetzt lange Zeit rumprobiert, aber es haut nicht hin. Wenn in den Zellen Werte stehen, ist das Format egal, aber sobald dort Formeln stehen, wird das Datum gar nicht gefunden.
Ich muss wohl doch noch einiges in VBA lernen.
Sorry und trotzdem schönes WoEnde.
Gruß
David
Anzeige
Wer kann helfen ?
05.09.2008 15:15:00
Steffi
Hallo David,
trotzdem vielen lieben Dank für Deine Bemühungen.
Vieleicht kann noch jemand anderes helfen?
LG
Steffi
AW: Find nicht bei Datums - besser Match
05.09.2008 17:20:55
Erich
Hi Steffi,
mit dem Problem hatten wir hier schon mehrfach Freude ;-))
Find funzt nicht bei der Suche nach Datums-Values, wenn der durchsuchte Bereich
nicht Standard-datumsformatiert ist.
Besser ist da Match (VERGLEICH). Das sucht einfach nach einer Zahl.
Probier mal

Sub Makro1()
Dim varZ 'As Variant
Dim rg As Range ' wenn benötigt
varZ = Application.Match(CDbl(Date), Columns("F:F"), 0)
'oder
varZ = Application.Match(CDbl(Date), Columns(6), 0)
If Not IsNumeric(varZ) Then
MsgBox "nicht gefunden"
Else
MsgBox Cells(varZ, 6).Value   ' Standardformat
MsgBox Cells(varZ, 6).Text    ' im eingestellten Format
Set rg = Cells(varZ, 6) ' falls du eine Range-Variable rg brauchst
End If
End Sub

Und falls es interessiert, hier ein Ausflug in die jüngere "Find-Geschichte"...:
https://www.herber.de/forum/archiv/992to996/t992568.htm#992591
(mit weiteren Links darin)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Problem gelöst? (owT)
09.09.2008 10:00:21
Erich
AW: Problem gelöst? (owT)
09.09.2008 10:03:27
Micha
Hallo Erich, nur insoweit das ich das Format geändert habe.
LG
Steffi
AW: Zelle mit heutigem Datum finden
05.09.2008 15:17:25
Horst
Hi,
Set rg = ActiveSheet.Columns("F:F").Find(Date, , xlFormulas)
das ist Mist, verwende die benannten Argumente, sonst müssen die Kommata alle angegeben werden
und das unterscheidet sich je nach Excelversion.
mfg Horst
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle mit heutigem Datum in Excel finden


Schritt-für-Schritt-Anleitung

Um in Excel die Zelle mit dem heutigen Datum zu finden, kannst du folgenden VBA-Code verwenden. Dieser sucht im Bereich "F:F" nach dem aktuellen Datum. Achte darauf, dass du den Code in einem Modul einfügst und die Makros aktivierst:

Sub Heutige_Datum_finden()
    'Findet die Zelle mit dem heutigen Datum
    Dim rg As Range
    Set rg = ActiveSheet.Columns("F:F").Find(Date, , xlValues)
    If Not rg Is Nothing Then
        rg.Activate
    Else
        MsgBox "Datum " & Date & " leider nicht gefunden"
    End If
    Set rg = Nothing
End Sub

Falls das Datum jedoch durch eine Formel wie =HEUTE() generiert wird, solltest du sicherstellen, dass du die xlFormulas-Option verwendest.


Häufige Fehler und Lösungen

  1. Datum nicht gefunden: Wenn du die Zellen im Format "T.MMM" hast, könnte das Datum nicht gefunden werden. Stelle sicher, dass du die Zellen im richtigen Format hast.

  2. Formatierungsprobleme: Excel erkennt Datumswerte als Zahlen. Wenn du das Format änderst, kann es sein, dass das Datum nicht mehr gefunden wird. Teste deine Zellen mit der Formel =DEZIMALWERT(A1) (wobei A1 die Zelle mit dem Datum ist), um zu sehen, ob Excel das Datum korrekt interpretiert.


Alternative Methoden

Eine alternative Methode zur Suche nach dem heutigen Datum ist die Verwendung der MATCH-Funktion. Diese Methode hat den Vorteil, dass sie weniger anfällig für Formatierungsprobleme ist:

Sub Makro1()
    Dim varZ As Variant
    varZ = Application.Match(CDbl(Date), Columns("F:F"), 0)
    If Not IsNumeric(varZ) Then
        MsgBox "nicht gefunden"
    Else
        MsgBox Cells(varZ, 6).Value   ' Standardformat
        MsgBox Cells(varZ, 6).Text    ' im eingestellten Format
    End If
End Sub

Diese Methode sucht nach der Zahl, die dem heutigen Datum entspricht, und ist somit nicht von der Datumsformatierung abhängig.


Praktische Beispiele

  1. Markieren der Excel-Zeile mit dem aktuellen Datum: Um die gesamte Zeile zu markieren, in der das heutige Datum steht, kannst du den folgenden Code verwenden:
Sub Zeile_mit_heutigem_Datum_markieren()
    Dim rg As Range
    Set rg = ActiveSheet.Columns("F:F").Find(Date, , xlValues)
    If Not rg Is Nothing Then
        rg.EntireRow.Interior.Color = RGB(255, 255, 0) ' Gelb markieren
    Else
        MsgBox "Datum " & Date & " nicht gefunden."
    End If
End Sub
  1. Suchen nach dem heutigen Datum in verschiedenen Formaten: Probiere, die Zellen mit verschiedenen Datumsformaten zu testen, um sicherzustellen, dass der Code in unterschiedlichen Szenarien funktioniert.

Tipps für Profis

  • Verwende benannte Argumente in der Find-Methode, um sicherzustellen, dass dein Code in verschiedenen Excel-Versionen funktioniert. Beispiel:
Set rg = ActiveSheet.Columns("F:F").Find(What:=Date, LookIn:=xlValues)
  • Wenn du mit großen Datenmengen arbeitest, könnte es effizienter sein, die Suche auf einen bestimmten Bereich zu beschränken, anstatt die gesamte Spalte zu durchsuchen.

FAQ: Häufige Fragen

1. Warum funktioniert die Suche nach dem Datum nicht, wenn es per Formel erstellt wurde?
Das liegt daran, dass Excel das Datum als Zahl speichert. Wenn du die Zellen nicht im richtigen Format hast, kann die Find-Methode das Datum nicht erkennen.

2. Wie kann ich sicherstellen, dass ich die richtigen Zellen finde?
Teste die Zellen mit der =DEZIMALWERT()-Formel, um sicherzustellen, dass Excel die Werte als Datumswerte interpretiert. Achte auch darauf, dass die Zellen entsprechend formatiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige