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

Datum die Zweite............

Forumthread: Datum die Zweite............

Datum die Zweite............
11.11.2007 17:57:00
Gast
Hallo,
Excel und Datum lassen mir wieder mal nur das Fragen im Forum offen :-(
Bereits gestern wurde mir mit CDate geholfen.
Das nachfolgende Makro funktioniert aber leider nicht wenn die Zellwerte "Datum wie 02.02.2008" über Formel hinterlegt sind.

Sub TestUrlaubsplanung()
Tag1 = CDate(Sheets("Urlaubsliste").Range("B6").Value)
Tag2 = CDate(Sheets("Urlaubsliste").Range("C6").Value)
With Sheets("Feiertage").Columns("I:I")
Set c = .Find(Tag1, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not c Is Nothing Then
Wert1 = c.Row
End If
End With
End Sub


Was muss ich noch ändern?
Gruß Gast

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum die Zweite............
11.11.2007 18:13:00
Ramses
Hallo
Was erwartest du ?
Du suchst nach einem Datum, das macht EXCEL.
Wenn dein Datum in einem Text vorhanden ist, dann musst du halt deine Programmierung umnbauen und nicht nach einem Datum suchen sondern nach einem Textstring und dann nicht in Formeln suchen !
Gruss Rainer

Anzeige
Ehm..?
11.11.2007 18:16:48
Gast
Hallo Rainer,
und wie?, aber lass gut sein! Ich suche mir einen anderen Weg.
Gruß Gast

AW: Ehm..?
11.11.2007 18:51:04
Daniel
Hi
nicht gleich aufgeben
was Rainer und Horst versuchen, dir zu sagen, ist, daß deine Parameter der Such-Funktion nicht ganz passend sind:

Range(xxx).Find(what:="aaa", LookIn:=xlFormulas)


sucht innhalb des FORMELTEXTES nach dem "aaa"


Range(xxx).Find(what:="aaa", LookIn:=xlValues)


dagegen sucht im FORMELERGEBNIS nach dem Wert "aaa"
dh.wenn du nach dem Wert 5 suchst, wird die Zelle mit der Formel =2+3

mit dem Parameter LookIn:=xlValues gefunden
mit dem Parameter LookIn:=xlFormulas nicht gefunden
Gruß, Daniel

Anzeige
LookIn:=xlValues
11.11.2007 18:15:02
Horst
oT

AW: LookIn:=xlValues
11.11.2007 18:42:52
Tino
Hallo,
dank des Tipps von Ramses gestern (Typ-Umwandlungsfunktionen), müsste es doch so sein
CDate wandelt in ein Datum
so müsste doch
CStr umwandeln in Text
oder liege ich da falsch?
Gruss
Tino

AW: LookIn:=xlValues
11.11.2007 21:22:31
Ramses
Hallo
da hast du recht.
Gut nachgelesen :-)
Der wichtigste Hinweis ist allerdings:
CDate erkennt alle Datumsformate, die im Gebietsschema des Systems ausgewählt werden können. Die richtige Reihenfolge von Tag, Monat und Jahr kann nicht immer bestimmt werden, wenn sich das Datumsformat von den im Gebietsschema verfügbaren Formaten unterscheidet. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch eine Zeichenfolge für den Wochentag enthält.
Das bezieht sich eben nicht nur auf die Zeichenfolge für Wochentage, sondern aben auch anderen Text.
Daher geht hier die Suchfunktion, wenn überhaupt, nur über INSTR()
Gruss Rainer

Anzeige
AW: Datum die Zweite............
11.11.2007 23:06:00
Gerd
Hallo zusammen

Sub TestUrlaubsplanung2_mit_Formelzellen()
Dim Tag1 As Date, c As Range, Wert1 As Long, x As String, y As String
x = Sheets("Urlaubsliste").Range("B6").NumberFormat
Sheets("Urlaubsliste").Range("B6").NumberFormat = "m/d/yyyy"
Tag1 = CDate(DateValue(Sheets("Urlaubsliste").Range("B6").Text))
With Sheets("Feiertage").Columns("I:I")
y = .NumberFormat
.NumberFormat = "m/d/yyyy"
Set c = .Find(Tag1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
MsgBox c.Row
End If
.NumberFormat = y
End With
Sheets("Urlaubsliste").Range("B6").NumberFormat = x
End Sub


Gruß Gerd

Anzeige
AW: Datum die Zweite............
12.11.2007 20:14:27
Gast
Hallo Gerd,
dachte die Sache ist abgeschlossen.
Dein Makro hängt sich mit Laufzeitfehler 13 Typen unverträglich in der nachfolgenden Zeile auf:
Tag1 = CDate(DateValue(Sheets("Urlaubsliste").Range("B6").Text))
Bin immer noch an dieser Lösung interessiert. Mach Dir aber auf keinen Fall Arbeit damit.
Ich habe eine Lösung über "Worksheet_BeforeDoubleClick" und
"DatWert1 = WorksheetFunction.VLookup(Me.Range(Zelle1), wks.Columns("H:J"), 3, False)"
gefunden.
Ursprünglich wollte ich das über die Find-Methode machen.
Gruß Gast

Anzeige
AW: Datum die Zweite............
12.11.2007 22:55:17
Gerd
Hallo Gast,
Arbeit ist dies hier für mich nicht. :-)
Urlaubsliste - B6 was steh drin, evtl. Formel ? Und welches Zahlenformat hat diese Zelle?
Gruß Gerd

AW: Datum die Zweite............
12.11.2007 23:10:43
Gast
Hallo Gerd,
in B6 steht das Datum im Format "TTT.TT.MM.JJJJ" (keine Formel, lediglich die Zahl)
Gruß Gast

Anzeige
AW: Datum die Zweite............
14.11.2007 00:53:00
Gerd
Hallo Gast,
getestet mit Zahlenformat der Spalte "I" "TT.MM.JJJJ"

Sub TestUrlaubsplanung3_mit_Formelzellen()
Dim Tag1 As Date, c As Range
Tag1 = CDate(Format(Sheets("Urlaubsliste").Range("B6"), "dd/mm/yyyy"))
Set c = Sheets("Feiertage").Columns("I:I").Find(Tag1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
MsgBox c.Row
End If
End Sub


Gruß Gerd

Anzeige
AW: Datum die Zweite............
14.11.2007 20:40:00
Gast
Hallo Gerd,
und siehe da, es funktioniert!
Recht herzlichen Dank für Deine Unterstützung.
Gruß Peter
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18