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

zum heutigen Datum springen per VBA

Forumthread: zum heutigen Datum springen per VBA

zum heutigen Datum springen per VBA
01.12.2005 02:45:34
MathiasW
Hallo Excel Freunde,
könnt Ihr mir helfen?
Ich habe eine Excel Tabelle und im Bereich B5:Z132
habe ich einzelne Tabellen mit jeweils einer Kalenderwoche angelegt.
In diesem Bereich sind nun in verschiedenen Zelle u.a. die einzelnen Tage
diesen Jahren eingetragen.
Ich möchte nun per VBA erreichen das die Zelle mit dem heutigen Datum selektiert wird, weiss jemand wie das geht?
vielen Dank
Mathias
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zum heutigen Datum springen per VBA
01.12.2005 03:28:45
Luc :-?
Hallo Mathias,
bei Selbsteinschätzung VBA gut ist dir sicher die Find-Methode bekannt. Du musst aus der Now-Funktion nur die zu deinen Daten passenden Teile herausfiltern und das dann als Suchbegriff verwenden und mit einem Select verbinden. Bei Bedarf kannst du das Ganze noch mit einer Event-Prozedur aufpeppen.
Gruß Luc :-?
Anzeige
AW: zum heutigen Datum springen per VBA
01.12.2005 05:44:33
Hajo_Zi
Hallo Mathias,
Suche aktuelles Datum
von Nepumuk
Cells(DateDiff("d", DateSerial(Year(Date), 1, 1), Date) + 4, 1).Select


AW: zum heutigen Datum springen per VBA
01.12.2005 08:40:32
PeterW
Hallo Mathias,
folgender Code sollte die Aufgabe lösen:

Sub DatumFinden()
Dim rngDatum As Range
Set rngDatum = Range("B5:Z132").Find(Date)
If Not rngDatum Is Nothing Then
rngDatum.Select
Else
MsgBox "Das Datum " & Date & " ist im Bereich B5:Z132 nicht zu finden."
End If
Set rngDatum = Nothing
End Sub

Gruß
Peter
Anzeige
AW: zum heutigen Datum springen per VBA
02.12.2005 01:33:41
MathiasW
Hallo,
erstmal vielen Dank für die viele Hilfe,
leider funktioniert keiner der angebotenen Lösungs-
vorschläge :-(
Liegt das vielleicht am doppeltem Datumswert?
Ich habe die Datei mal hochgeladen, vielleicht könnt Ihr ja nochmal schauen.
https://www.herber.de/bbs/user/28907.xls
vielen Dank
Mathias
Anzeige
AW: zum heutigen Datum springen per VBA
02.12.2005 17:38:15
PeterW
Hallo Mathias,
nicht schön aber funktionsfähig ist mit Version 2003 diese Lösung:

Sub DatumFormatFinden()
Dim rng As Range
Dim lngDatum As Long
lngDatum = CLng(Date)
For Each rng In Range("B5:Z132")
If IsDate(rng) Then
If CLng(rng) = lngDatum Then
rng.Select
Exit Sub
End If
End If
Next
End Sub

Gruß
Peter
Anzeige
AW: zum heutigen Datum springen per VBA
03.12.2005 00:05:50
MathiasW
Moin Peter,
vielen Dank, funktioniert super :-)
Ist es allerdings noch möglich ein kleines goodi einzubauen?
und zwar wenn es 2 gleiche Daten gibt,
also z.B. den 03.12.2005 in Zelle Z120 und B131, das dann zur weiter untenliegenden Zelle
gesprungen wird, also in Zelle B131?
vielen Dank und schönen Gruss aus Toulouse
Mathias
Anzeige
AW: zum heutigen Datum springen per VBA
03.12.2005 12:53:36
Reinhard
Hi Matthias,
Option Explicit
Sub DatumFormatFinden()
Dim lngDatum As Long, zei As Long, sp As Integer
lngDatum = CLng(Date)
For zei = 132 To 5 Step -1
For sp = 26 To 2 Step -1
If IsDate(Cells(zei, sp)) And CLng(Cells(zei, sp)) = lngDatum Then
Cells(zei, sp).Select
Exit Sub
End If
Next sp
Next zei
End Sub
Gruß
Reinhard
Anzeige
AW: zum heutigen Datum springen per VBA
06.12.2005 00:25:14
MathiasW
Hallo Reinhard,
leider bekomme ich bei deinem Code immer Laufzeitfehler 13, unverträgliche Typen.
Peter hatte mir diesen Code geschickt

Function DatumFormatFinden()
Dim rng As Range
Dim lngDatum As Long
lngDatum = CLng(Date)
For Each rng In Range("B5:Z132")
If IsDate(rng) Then
If CLng(rng) = lngDatum Then
rng.Select
Exit Function
End If
End If
Next
End Function

der funktioniert auch super, bis auf die Tatsache, dass er bei gleichen Datumswerten zum ersten Datum spring und nicht zum 2ten, kannst du da nochmal gucken?
vielen Dank
Gruss Mathias
Anzeige
AW: zum heutigen Datum springen per VBA
06.12.2005 00:42:04
PeterW
Hallo Mathias,
der Fehler resultiert aus der gleichzeitigen Prüfung ob Datum UND ob Datum=Suchdatum. Getrennt geprüft sieht das so aus und sollte funktionieren:

Sub DatumFormatFinden()
Dim lngDatum As Long, zei As Long, sp As Integer
lngDatum = CLng(Date)
For zei = 132 To 5 Step -1
For sp = 26 To 2 Step -1
If IsDate(Cells(zei, sp)) Then
If CLng(Cells(zei, sp)) = lngDatum Then
Cells(zei, sp).Select
Exit Sub
End If
End If
Next
Next
End Sub

Gruß
Peter
Anzeige
AW: zum heutigen Datum springen per VBA
06.12.2005 01:31:14
MathiasW
Hallo Peter,
vielen Dank für deine Hilfe,
funktioniert super :-)
auch an Reinhard vielen Dank.
wünsche euch noch einen angenehmen Tag.
Gruss Mathias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zum heutigen Datum springen per VBA in Excel


Schritt-für-Schritt-Anleitung

Um in Excel beim Öffnen auf das aktuelle Datum zu springen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub DatumFinden()
       Dim rngDatum As Range
       Set rngDatum = Range("B5:Z132").Find(Date)
       If Not rngDatum Is Nothing Then
           rngDatum.Select
       Else
           MsgBox "Das Datum " & Date & " ist im Bereich B5:Z132 nicht zu finden."
       End If
       Set rngDatum = Nothing
    End Sub
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Füge das Makro beim Öffnen der Datei hinzu, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Das Makro sucht nun im Bereich B5:Z132 nach dem heutigen Datum und selektiert die entsprechende Zelle.


Häufige Fehler und Lösungen

  • Laufzeitfehler 13: Dieser Fehler kann auftreten, wenn du versuchst, einen Wert zu vergleichen, der kein Datum ist. Stelle sicher, dass alle Zellen im Bereich B5:Z132 Datumswerte enthalten.

  • Doppeltes Datum: Wenn es mehrere Zellen mit dem gleichen Datum gibt, springt das Makro immer zur ersten gefundenen Zelle. Um zur letzten Zelle mit dem heutigen Datum zu springen, verwende den folgenden Code:

    Sub DatumFormatFinden()
       Dim lngDatum As Long, zei As Long, sp As Integer
       lngDatum = CLng(Date)
       For zei = 132 To 5 Step -1
           For sp = 26 To 2 Step -1
               If IsDate(Cells(zei, sp)) Then
                   If CLng(Cells(zei, sp)) = lngDatum Then
                       Cells(zei, sp).Select
                       Exit Sub
                   End If
               End If
           Next sp
       Next zei
    End Sub

Alternative Methoden

Eine weitere Möglichkeit, in Excel beim Öffnen zum aktuellen Datum zu springen, besteht darin, die Workbook_Open-Ereignisprozedur zu verwenden. Hier ein Beispiel:

  1. Öffne den VBA-Editor (ALT + F11).
  2. Doppelklicke auf DieseArbeitsmappe im Projekt-Explorer.
  3. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
       Call DatumFinden
    End Sub

Mit dieser Methode wird das Makro automatisch ausgeführt, wenn die Datei geöffnet wird.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, das Makro effektiver zu nutzen:

  • Beispiel 1: Wenn du das Makro in einer Datei verwendest, die jeden Tag aktualisiert wird, kannst du den Bereich B5:Z132 anpassen, um nur die relevanten Wochen zu durchsuchen.

  • Beispiel 2: Du kannst das Makro mit einem Button verknüpfen, um das heutige Datum manuell auszuwählen, falls du es nicht beim Öffnen tun möchtest.


Tipps für Profis

  • Verwende Fehlerbehandlung, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben funktioniert. Füge On Error Resume Next und On Error GoTo 0 hinzu, um Fehler zu ignorieren und später zurückzusetzen.

  • Du kannst das Makro so anpassen, dass es beim Öffnen der Datei nicht nur zum heutigen Datum springt, sondern auch automatisch die Zelle mit dem heutigen Datum hervorhebt.


FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um bei doppelten Datumswerten immer zur letzten Zelle zu springen? Du kannst die Schleife umkehren und von unten nach oben durch die Zellen iterieren, wie im Beispiel oben gezeigt.

2. In welcher Excel-Version funktioniert dieses Makro? Das Makro ist mit Excel-Versionen ab 2003 kompatibel. Achte darauf, dass die Datumsformate korrekt eingestellt sind, um Fehler zu vermeiden.

3. Was kann ich tun, wenn das Datum nicht gefunden wird? Das Makro gibt eine Nachricht aus, wenn das Datum nicht im angegebenen Bereich gefunden wird. Du kannst den Bereich anpassen oder sicherstellen, dass das Datum korrekt eingetragen ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige