Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Datumsprüfung in Excel mit VBA





Frage

Hallo zusammen, wie kann ich in Excel VBA ein Feld prüfen, in dem ein Datum 2,2008 steht. Zur Zeit sieht mein VBA so aus: Sub Datum() Beginn: Range("Variable!c3") = Application.InputBox( _ prompt:="Geben Sie das Datum ein MM,JJJJ:", Type:=1) Range("d5").Select Aus = MsgBox("Ist das Datum okay ?", vbYesNo) If Aus = vbNo Then GoTo Beginn End If End Sub Ich habe also eine Eingabe-Maske, wo ich mein Datum "02,2008" eingebe und bekomme dann die Frage, ob dieses Datum okay ist. Jetzt soll aber noch die Prüfung hinzugefügt werden, die folgendes machen soll: Gebe ich ein Datum vor dem 01,2008 ein und klicke dann in der MessageBox auf Ja, soll der Hinweis kommen, dass das Datum vor dem 01.2008 und nicht okay ist und dann wieder zur Eingabe-Maske springen. Hoffe ich habe es verständlich geschrieben. ;-) Schönen Dank schon mal MFG Dongel

Antwort 1 von Tolwyn

Hallo

leider weiß ich nicht mehr wie die Funktion dazu genau heißt, ich meine aber es war sowas wie "Substring".

NImm die Eingabe vom prompt in einer Variable entgegen und teile dann die Methode per "Substring" in zwei Teile (als Trennzeichen zwischen Monat und Jahr verwendest du ja scheinbar das Komma).
Dann kannst du den zweiten Teil (das Jahr) absplitten und diesen teil dann ggf. in Integer konvertieren und überprüfen, ob die Zahl kleiner als 2008 ist. Wenn du nur auf das aktuelle Jahr prüfen möchtest, kannst du es auch als String entgegennehmen und einfach auf den String "2008" prüfen.

Die Variante mit Goto ist übrigens nicht so der Hit.
Das solltest du in ein IF-ELSE , FOR-Schleife oder wenn du eine "Endlosschleife" erzeugen willst, nimm gleich die WHILE Schleife.

Also die methoden zum Teilen eines Strings gibt es auf jeden Fall.
(stichworte: substring, split, substr)

Soweit die Theorie;

Viel Spaß beim Suchen oder vllt kann dir ja noch jemand die konkreten Methoden sagen.

gruß
tolwyn

Antwort 2 von dongel

Hi Tolwyn,

schönen Dank erst mal für die Antwort, leider verstehe ich selber nicht so viel von VBA, dass ich mir das mit substring usw. zusammenbauen kann. Ich hab versucht ein wenig danach zu suchen und auch was über substring, string-methoden gefunden, kann es aber leider nicht anwenden.
Vielleicht kann mir jemand die Formel hier posten?

Schönen Dank
mfg
Dongel

Antwort 3 von tomham

Hi dongel!
Probier mal das aus:


Sub Datum()
Dim button
Dim eingabe, buf
Dim monat, jahr

Beginn:
   eingabe = InputBox("Geben Sie das Datum ein MM,JJJJ:")

   button = MsgBox("Ist das Datum okay ?" & vbCrLf & eingabe, vbYesNo)

   If button = vbNo Then ' Hab mich vertippt oder so ...
      GoTo Beginn
   Else
      buf=InStr(eingabe,",") ' Beistrich suchen, Position merken
      monat=Left(eingabe,buf) ' Monat heraussuchen
      jahr=Right(eingabe,4) ' Jahr heraussuchen
         If monat<1 Or jahr<2008 Then ' Prüfkriterien
            button=MsgBox("Wert nicht OK!",vbOkOnly)
            goto Beginn
         End If

   End If
   Range("Variable!C3").Value=eingabe ' Wenn alles OK dann Wert in Zelle "C3" in Tabelle "Variable" speichern
End Sub


Wär glaub ich das was du suchst.

MfG
tomham

Antwort 4 von dongel

Hi tomham,

genau so sollte es sein. ;-)
Wunderbar, schönen Dank!

mfg
dongel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: