Registriert seit: 20.11.2017
Version(en): Excel2013
Hallo Forum,
ich suche eine Möglichkeit, in Zeile 2 per Inputbox
ein Datum (z.B. 09.07.2020) zu suchen und zu markieren.
Besten Dank im Voraus
Omron2003
Registriert seit: 12.04.2014
Version(en): Office 365
Moin Omron2003
STRG-F.
Wir sehen uns!
... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
... und falls es auf eine Makrolösung hinauslaufen soll, hier die Hälfte mit der Inputbox:
Code:
Sub test()
'InputBox Type Parameter Options
'Value Type
' 0 Formula
' 1 Number
' 2 String
' 4 Boolean - True or False
' 8 Range
' 16 An error value like #N/A
' 64 Array of values
Dim dDate
dDate = Application.InputBox("Datum eingeben", "Datumseingabe", , , , , , 1)
If IsDate(CDate(dDate)) Then
'hier statt der Meldung die Suche
MsgBox CDate(dDate)
End If
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
11.07.2020, 08:45
(Dieser Beitrag wurde zuletzt bearbeitet: 11.07.2020, 08:45 von RPP63.)
Moin André!
Ist If IsDate(CDate(dDate)) nicht doppelt gemoppelt?
Es kann (hier) zwar nicht in einen Fehler laufen, weil die InputBox den Type 1 hat …
… aber generell würde ich nur auf If IsDate(dDate) prüfen.
Prinzipiell halte ich aber nichts von dieser Art der Eingabe.
Schließlich ist auch "12,3" ein für VBA gültiges Datum.
CDate(12.3)
ergibt den 11.01.1900 07:12:00
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
11.07.2020, 09:54
(Dieser Beitrag wurde zuletzt bearbeitet: 11.07.2020, 09:54 von schauan.)
Hallöchen Ralf,
ich hab mir auch ein paar Fragen gestellt
- ob überhaupt eine VBA-Lösung erwünscht ist - ich nehme an, ja, da explicit nach einer Inputbox gefragt wurde,
- ob es unbedingt eine Inputbox sein muss
- wenn ja, die Syntax umfassender prüfen und wenn nein, könnte man (m)einen Datepicker verwenden
- ob die Inputbox nur ein Teil eines Projektes ist - dann könnte man noch darauf hinweisen, das man meistens auf die Markierung (Selection) verzichten kann
:17:
übrigens, 12.3 wird mit der codierung wie auch bei einer Zelleingabe als Datum erkannt und zum 12.3.20 gemacht - ohne cDate wäre es kein Datum. Ich nehme aber auch an, dass das aus 12,3 hervorgehende Datum nicht in der Zeile gefunden wird
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
(11.07.2020, 09:54)schauan schrieb: übrigens, 12.3 wird mit der codierung wie auch bei einer Zelleingabe als Datum erkannt und zum 12.3.20 gemacht - ohne cDate wäre es kein Datum. Ich nehme aber auch an, dass das aus 12,3 hervorgehende Datum nicht in der Zeile gefunden wird
Ja, ich wollte eben keine Romane schreiben
, aber gut:
Da die Inputbox Type:=1 hat, wird intern geprüft (IsNumeric()), ob es sich um eine Zahl handelt.
Die Übergabe des Textes "12,3" an Deinen Variant wird in VBA mittels CDbl("12,3") erledigt, was 12.3 entspricht.
Conclusio:
Cdate("12,3") ergibt den
12.03.2020"Deine" Variante erzeugt jedoch ein
CDate(CDbl("12,3")) was den
11.01.1900 07:12:00 ergibt.
Ist halt die babylonische Sprachverwirrung deutsches Excel und US-englisches VBA.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hi Ralf,
ich denke, wir sind uns einig
Die Fragen zielen auch ein bisschen an den TE, aber vermutlich kommt er erst Montag von der Arbeit wieder hier vorbei
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)