in Zeile per inputbox suchen
#1
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
Top
#2
Moin Omron2003

STRG-F.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#3
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)
Top
#4
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)
Top
#5
Hallöchen Ralf,

ich hab mir auch ein paar Fragen gestellt  Huh 

- 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 Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#6
(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 Smile

Ja, ich wollte eben keine Romane schreiben Wink, 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)
Top
#7
Hi Ralf,

ich denke, wir sind uns einig Smile Die Fragen zielen auch ein bisschen an den TE, aber vermutlich kommt er erst Montag von der Arbeit wieder hier vorbei Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste