Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datumsprüfung | Herbers Excel-Forum


Betrifft: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 19:36:28

Hallo zusammen,

Ich habe folgende Aufgabe bekommen, wo ich leider nicht weiter komme:

Ich habe in einer Spalte (Spalte 4) verschiedene Datumsangaben und möchte einen Check einbauen, ob das jeweilige Datum in jeder Zeile dieser Spalte größer als der erste Tag des Vormonats ist, eine Schleife also, die Zeile für Zeile abprüft.

Bei Nichterfüllen dieser Bedingung soll eine Warnmeldung rauskommen, dass man dieses Datum nochmal überprüfen soll, wobei man den Hinweis auf dieselbe Zeile aber die entsprechende Auftragsnummer in der ersten Spalte erstellt.

Könnte mir jemand bitte weiter helfen?

Vielen Dank im Voraus!

Gruß,

Julia

  

Betrifft: AW: Datumsprüfung von: Hajo_Zi
Geschrieben am: 04.09.2008 19:47:27

Hallo Julia,

eine Beispieltabelle sagt mehr als tusend Worte.
Reicht vielleicht schon eine Marlierung? Dann könnte man es über bedingteFormatierung machen.

GrußformelHomepage


  

Betrifft: AW: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 19:56:17

Also, ich habe so eine Beispieldatei erstellt...

https://www.herber.de/bbs/user/55198.xls

In der Spalte 2 sind Datumsangaben, die überprüft werden sollen, und zwar, ob das jeweilige Datum größer als der erste Tag des Vormonats ist. Wenn nicht größer, dann kommt die Warnung, dass die ensprechende Auftragsnummer nochmal überprüft werden soll.

Danke!


  

Betrifft: AW: Datumsprüfung von: Hajo_Zi
Geschrieben am: 04.09.2008 20:00:56

Hallo Julia,

meine Frage hast Du nicht beantwortet.
Es müssen alle Daten markiert werden. Gebe ich 14.12.08 ein ist der Vormonat 11 und der erste Tag der erste also 01.11.08 und das eingegeben Datum ist größer. Der Vormonat ist nunmal kleiber als das Datum.

Gruß Hajo


  

Betrifft: AW: Datumsprüfung von: Erich G.
Geschrieben am: 04.09.2008 20:10:42

Hallo Julia,
hier in der Tabelle 2 Möglichkeiten, per bed. Formatierung in Spalte D und per Formel in Spalte E:

Tabelle1

 ABCDE
1Autragsnummer  DatumPrüfung
21  25.04.2008Datum prüfen zu Auftrag 1
32  14.12.2007Datum prüfen zu Auftrag 2
43  01.08.2008Datum prüfen zu Auftrag 3
54  03.09.2008 
65  12.07.2008Datum prüfen zu Auftrag 5
76  15.05.2008Datum prüfen zu Auftrag 6
8     
910    
1011   Datum prüfen zu Auftrag 11
1112  01.08.2008Datum prüfen zu Auftrag 12
1213  02.08.2008 
1314  xxx 

Formeln der Tabelle
ZelleFormel
E2=WENN(D2<=DATUM(JAHR(HEUTE()); MONAT(HEUTE())-1;1); "Datum prüfen zu Auftrag "&A2;"")

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
D21. / Formel ist =D2<=DATUM(JAHR(HEUTE());MONAT(HEUTE())-1;1)Abc

Und falls es VBA sein sollte:

Option Explicit

Sub DatumPruef()
   Dim zz As Long
   For zz = 2 To Cells(Rows.Count, 4).End(xlUp).Row
      If Cells(zz, 4) <= DateSerial(Year(Date), Month(Date) - 1, 1) Then _
         MsgBox "Datum prüfen zu Auftrag " & Cells(zz, 1)
   Next zz
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 20:27:02

Also, vielleicht habe ich mich falsch ausgedrückt, sorry.

Mit dem ersten Tag des Vormonats ist der Bezug auf den aktuellen Monat gemeint.

Also, wenn es dor 25.04.2008 steht, dann ist dieses Datum kleiner als der 01.08.2008, der erste Tag des Vormonats...

Danke, Erich aus Kamp-Lintfort! Deinen Code verstehe ich, aber der funktioniert leider nicht so wie ich es eben meinte.

Übrigens habe ich 2 Jahre in Kamp-Lintfort gearbeitet :-)))


  

Betrifft: AW: Rückfragen von: Erich G.
Geschrieben am: 04.09.2008 20:44:32

Hi Julia,
was genau meinst du denn mit "funktioniert leider nicht so wie ich es eben meinte"?
Das sagt nicht viel aus...
Sind die VBA-Ergebnisse teilweise oder alle falsch? Gibt es Laufzeitfehler?
Sind die Formelergebnisse so, wie du das meinst?

Sollte es überhaupt VBA sein oder reichen Formel oder bed. Format?

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Datumsprüfung von: Erich G.
Geschrieben am: 04.09.2008 20:14:33

Hi Julia,
die Tabellenausgabe war noicht korrekt, also nochmal:

Tabelle1

 ABCDE
1Autragsnummer  DatumPrüfung
21  25.04.2008Datum prüfen zu Auftrag 1
32  14.12.2007Datum prüfen zu Auftrag 2
43  01.08.2008Datum prüfen zu Auftrag 3
54  03.09.2008 
65  12.07.2008Datum prüfen zu Auftrag 5
76  15.05.2008Datum prüfen zu Auftrag 6
8    Datum prüfen zu Auftrag
911   Datum prüfen zu Auftrag 11
1012  01.08.2008Datum prüfen zu Auftrag 12
1113  02.08.2008 
1214  xxx 

Formeln der Tabelle
ZelleFormel
E2=WENN(D2<=DATUM(JAHR(HEUTE()); MONAT(HEUTE())-1;1); "Datum prüfen zu Auftrag "&A2;"")

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
D21. / Formel ist =D2<=DATUM(JAHR(HEUTE());MONAT(HEUTE())-1;1)Abc

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 21:02:34

Es soll ein VBA Code sein.

Dein Code, Erich, ist gut, es funktioniert in meinem Beispiel. Aber wie soll ich den ändern, so dass die Prozedur das Datum mit dem 01. des Vormonats abgleicht (bezogen auf den aktuellen Monat), also, auf den 01.08.2008 und wenn es kleiner ist, dann kommt die Warnung?????


  

Betrifft: AW: Datumsprüfung von: Erich G.
Geschrieben am: 04.09.2008 21:42:38

Hi Julia,
war es der gar nicht kleine Unterschied zwischen < und <= ?

Du hattest in deiner Aufgabenstellung geschrieben "größer als der 1. des Vormonats",
der 1.8.08 ist aber nun mal nicht größer als er selbst...

Vermutlich hattest du gemeint: OK ist ein Datum "nicht kleiner als der 1. des Vormonats".

Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 22:00:48

Ja, so habe ich es gemeint.
OK ist das Datum, welches nicht kleiner als der 1. des Vormonats ist!

aber ich habe es mit Deiner Hilfe bereits gelöst, was mich sehr freut :-)

Vielen Dank!

LG,

Julia


  

Betrifft: AW: Datumsprüfung von: Julia
Geschrieben am: 04.09.2008 21:20:15

Also, ich habe das Problem gelöst!

Vielen Dank, insbesondere an Erich G.!!!!!!

Es funktioniert!!!!

Danke nochmals!