Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
284to288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
284to288
284to288
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum suchen

Datum suchen
26.07.2003 14:19:05
eckhard
Hallo,
ich benutze eine Tabelle, bei der in den einzelnen Zellen der Spalte A jeweils ein Datum (tt.mm., also zB „26.07.“) steht.
Mein Wunsch ist es, dass ich eine beliebige Zelle der Spalte A markiere, dann das nachfolgende Makro ausführe und der Cursor zu der Zelle springt, in der (von A1, A2, A3 ... ausgehend) das Datum der markierten Zelle zum ersten Mal erscheint.
Hierzu verwende ich folgendes Makro:
x = ActiveCell.Column
y = ActiveCell.Row
T$ = ActiveCell.Value

Cells(1, 1).Activate
On Error Resume Next

Cells.Find(What:=T$, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate

ActiveCell.Offset(0, 0).Range("A1").Select

If ActiveCell = Empty Then
Range("A1").Select
End If
Dieses Makro funktioniert einwandfrei, wenn in der aktiven Zelle eine einfache Zahl (zB „1200“) steht. Es funktioniert nicht bei einem zu suchenden Datum.
Für Hinweise, wie ich das Makro anpassen kann, damit es auch nach einem Datum suchen kann, wäre ich sehr dankbar.
Vielen Dank
Eckhard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum suchen
26.07.2003 14:24:56
Ramses
Hallo Eckhard
steht da wirklich ein Datum drin, oder erfolgte die Eingabe in der Form
26.07.
Gruss Rainer

AW: Datum suchen
26.07.2003 14:47:26
eckhard
Hallo Rainer,
danke für die Nachfrage.
Ich gebe ein zB "26-07"
Dies erscheint in der Zelle als "26.07."
Unter Format, Zellen, Zahlen, Benutzerdefiniert ist eingestellt: "TT.MM"
In der Excel-Bearbeitungszeile wird angezeigt: "26.07.2003"
Viele Grüße
Eckhard

AW: Datum suchen
26.07.2003 14:55:55
Ramses
Hallo Eckhard,
versuche mal die Variablen-Zuweisung zu ändern.
Mit dem Code funktioniert es bei mir

Option Explicit
Sub test()
Dim x As Integer, y As Integer, t As Date
x = ActiveCell.Column
y = ActiveCell.Row
t = ActiveCell.Value
Cells(1, 1).Activate
On Error Resume Next
Cells.Find(What:=t, After:=ActiveCell, LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
    MatchCase:=False).Activate
    ActiveCell.Offset(0, 0).Range("A1").Select
If ActiveCell = Empty Then
    Range("A1").Select
End If
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16


Die Tabelle:
Anzeige
AW: Datum suchen
26.07.2003 15:21:17
eckhard
Hallo Rainer,
zunächst einmal herzlichen Dank für die schnelle und praktikable Antwort.
Das geänderte Makro funktioniert auch bei mir. Allerdings setzt dies voraus,
das ich - anders als bisher - die Jahreszahl in der Zelle anzeigen lasse ("TT.MM.JJJJ").
U.a. aus Platzgründen möchte ich jedoch auf die Jahreszahl verzichten und weiterhin folgendes Format verwenden: "TT.MM."
Ich würde mich freuen, wenn es auch dafür eine Lösung gäbe.
Viele Grüße
Eckhard

AW: Datum suchen
26.07.2003 15:36:59
Ramses
Hallo Eckhard
das ist egal in welcher Form das Datum angezeigt wird.
Wichtig ist nur, DASS ein Datumsformat in der Zelle ist.
Gruss Rainer

Anzeige
AW: Datum suchen
26.07.2003 15:58:13
eckhard
Hallo Rainer,
bei mir funktioniert das Makro nur, wenn die zu suchende Zelle so formatiert ist, dass sie auch die Jahreszahl anzeigt.
Ich werde deshalb meine Liste entsprechend anpassen.
Ich bedanke mich nochmals für Deinen Lösungsvorschlag und verbleibe
mit freundlichen Grüßen
Eckhard

AW: Datum suchen
26.07.2003 17:25:20
Michael Schirow
Hi Eckhart,
es geht auch ohne umformatieren, hab Dein Makro mal etwas kommentiert
hth, Michael
option explicit

Sub test()
' Sucht nach dem nächsten Wert, der gleich dem Wert
' unter dem Zellzeiger ist
' korrekten Datentyp deklarieren
Dim t As Date '
' überflüssig
'x = ActiveCell.Column
'y = ActiveCell.Row
' falscher Datentyp String, t muss variant oder date sein
' t$ = ActiveCell.Value
t = ActiveCell.Value
' überflüssig
' Cells(1, 1).Activate
' verkehrt: Überspringt den Fehler
' "Objektvariable oder With-Block nicht festgelegt"
' die Excel-Fehlerbehandlung sollte man nur ausschalten,
' wenn der Fehler auch ausgewertet wird
' On Error Resume Next
' gehört VOR Suchbefehl - wenn Zelle leer, macht es
' keinen Sinn, den Suchbefehl auszuführen,
' es sei denn, man sucht nach leeren Zellen, dann
' lässt man den if block wech
If ActiveCell = Empty Then
MsgBox "Fehler: leere Zelle!"
Exit Sub
End If
' Prüfen, ob wirklich ein Datum in der Zelle ist
If Not IsDate(ActiveCell.Value) Then
MsgBox "Fehler: Kein Datum"
Exit Sub
End If
' geändert: what:=t,
' lookin:=xlformulas - da wir uns für den realen Wert
' interessieren und nicht, wie er angezeigt wird
' lookat:=xlwhole - exakte Übereinstimmung ist gewünscht
Call Cells.Find(What:=t, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
' ? überflüssig
' ActiveCell.Offset(0, 0).Range("A1").Select
End Sub


Anzeige
AW: Datum suchen
27.07.2003 08:41:35
eckhard
Hallo Michael,
es geht tatsächlich ohne umzuformatieren. Ich habe Deine Empfehlungen umgesetzt. Das Makro erkennt jetzt das Datum auch ohne Jahreszahl ("TT.MM.").
Vielen Dank für Deine Hilfestellung.
Viele Grüße
Eckhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige