Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

Datum die Zweite............
11.11.2007 16:57:00
Sonnenpeter
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ß Sonnenpeter

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

Betreff
Datum
Anwender
Anzeige
AW: Datum die Zweite............
11.11.2007 17: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

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

AW: Ehm..?
11.11.2007 17: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 17:15:02
Horst
oT

AW: LookIn:=xlValues
11.11.2007 17: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 20: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 22: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 19:14:27
Sonnenpeter
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ß Sonnenpeter

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

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

AW: Datum die Zweite............
13.11.2007 23:53:00
Gerd
Hallo Sonnenpeter,
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

AW: Datum die Zweite............
14.11.2007 19:40:00
Sonnenpeter
Hallo Gerd,
und siehe da, es funktioniert!
Recht herzlichen Dank für Deine Unterstützung.
Gruß Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige