Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum suchen

Datum suchen
20.07.2004 12:41:26
mclear
Hallo Leute!
Ich versuche grad mit der Find Funktion das aktuelle Datum in 12 Monatstabellenblättern zu finden und in der Spalte neben dem Datum den per DDE eingelesenen Wert einzutragen. Leider funktioniert die hier gefundene Vorlage dafür nicht so wie sie soll. Ich kann alle Werte finden lassen, aber es ist einfach nicht möglich ein Datum zu finden. Woran liegt das? Gibts eine andere Möglichkeit das aktuelle Datum und den zugehörigen Wert einzulesen und in jeweils eine neue Zelle zu speichern?
Hier der benutzte VBA-Code:
Sub heute_suchen()
Dim wks As Worksheet
Dim rng As Range
Dim sAdress As String, sFind As String
sFind = InputBox("Gib ein:")
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=sFind, lookat:=xlWhole, LookIn:=xlFormulas)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
If MsgBox(prompt:="Weiter", Buttons:=vbYesNo + vbQuestion) = vbNo Then Exit Sub
'Set rng = Cells.FindNext(after:=ActivateCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
Das mit dem Set rng hab ich rauskommentiert, weils ne Fehlermeldung brachte.
Wie gesagt andere Werte werden, egal in welchem Worksheet, gefunden...
Grüße mclear

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum suchen
20.07.2004 13:06:31
Harald
Hallo mc,
Du suchst mit Find(what:=sFind, lookat:=xlWhole, LookIn:=xlFormulas) nach einem String, der aussieht wie da eingegebene Datum. In der Zelle staht aber ein Zahl (ein Datumswert), die lediglich per Formatierung als Datum interpretiert wird. Wandle daher den eingegebenen Strin vor der Suche in ein Datum um, siehe Beispiel.

Sub heute_suchen()
Dim wks As Worksheet
Dim rng As Range
Dim sAdress As String, sFind As String
Dim datfind As Date
sFind = InputBox("Gib ein:")
datfind = CDate(sFind)
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=datfind, lookat:=xlWhole, LookIn:=xlFormulas)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
If MsgBox(prompt:="Weiter", Buttons:=vbYesNo + vbQuestion) = vbNo Then Exit Sub
'Set rng = Cells.FindNext(after:=ActivateCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Das funktioniert dann auch, wenn in der Zelle per Format z.B. 20.07.04 angezeigt ist, der Benutzer aber 20.07.2004 sucht.
Gruß Harald
Anzeige
AW: Datum suchen
Ramses
Hallo
Realnamen werden bevorzugt

Sub heute_suchen()
Dim wks As Worksheet
Dim rng As Range
'Schreibfehler
'Es muss heissen sAddress
'Dim sAdress As String, sFind As String
Dim sAddress As String, sFind As String
sFind = InputBox("Gib ein:")
For Each wks In Worksheets
Set rng = wks.Cells.Find(what:=sFind, lookat:=xlWhole, LookIn:=xlFormulas)
If Not rng Is Nothing Then
sAddress = rng.Address
Do
Application.Goto rng, True
If MsgBox(prompt:="Weiter", Buttons:=vbYesNo + vbQuestion) = vbNo Then Exit Sub
'Schreibfehler
'Set rng = Cells.FindNext(after:=ActivateCell)
'Es muss heiseen ActiveCell
Set rng = Cells.FindNext(after:=ActiveCell)
If rng.Address = sAddress Then Exit Do
Loop
End If
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Gruss Rainer
Anzeige
AW: Datum suchen
20.07.2004 13:47:50
mclear
Super, es funzt! Danke für den Tip mit dem Syntax-Fehler. Jetzt hab ich nur noch ein Problem. Die Eingabebox is nur zum Debuggen gut. Der muss sich aber den Datumswert aus der Zelle xy holen und in eine Variable schreiben.
Ich dachte das geht so:
Dim Datum as String
Datum=Range.Cells.Value("H5")
Ich hab eben keine Ahnung von VBA... Muss aber leider zwecks Arbeit damit rummurksen.
Also, wie kann ich den aktuellen Zellwert in die Variable sfind bekommen?
Grüße mclear
AW: Datum suchen
20.07.2004 14:06:03
mclear
Habs gefunden...
es geht so:
sfind = Range("H5").Value
MfG mclear

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige