Microsoft Excel

Herbers Excel/VBA-Archiv

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

Datum prüfen

Betrifft: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 09:56:09

Hallo Zusammen!

In meiner Tabelle Spalte A stehen untereinander verschiedene Datum. Z. Bsp. 15.06.2014 usw. Aber immer nur einmal pro Monat. Nun habe ich auf meiner UF zwei ComboBoxen - cbMonat und cbJahr. Jetzt möchte ich gern, dass wenn der Monat aus cbMonat und das Jahr aus cbJahr identisch mit dem Monat und dem Jahr aus dem Datum Spalte A sind, mir der Wert aus Spalte D in die TextBox - txtRestschuld - geschrieben wird.
Die zwei ComboBoxen werden so gefüllt:

Dim lngJahr As Long

For lngJahr = 2014 To 2040
cbJahr.AddItem lngJahr
Next

For i = 1 To 12
cbMonat.AddItem Format(DateSerial(1, i, 1), "mmmm")
Next

Ich hoffe ihr könnt helfen. Bereits jetzt Danke!

Gruß Frank H.

  

Betrifft: AW: Datum prüfen von: Hajo_Zi
Geschrieben am: 17.10.2014 10:15:35

Hallo Frank,

Du möchtest also 30 Werte in eine TextBox schreiben?
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Der Dateiname sollte was mit dem Problem zu tun haben.
Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test..., Mappe…, Beispiel… wird eine vorhandene überschrieben.
Ein Bild in Excel geöffnet sieht anders aus als das Bild.
Ich habe kein Tool um ein Bild in Excel zu importieren.

GrußformelHomepage


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 10:40:57

Hallo Hajo!

Keine 30 Werte! Es gibt immer nur einen Wert pro Monat. Aber der Tag kann unterschiedlich sein, mal der 15., mal der 18., mal der 16. usw.

Kannst du jetzt auch ohne Bsp.-Datei helfen? Danke!

Gruß Frank H.


  

Betrifft: AW: Datum prüfen von: Hajo_Zi
Geschrieben am: 17.10.2014 10:42:55

ja pro Monat vielleicht, es gibt aber 26 Jahre, also 26 Werte.
Es sollte nur eine Prüfung Monat, Jahr nicht Tag.

Gruß Hajo


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 11:10:35

Verstehe ich nicht. Das Datum bspw. 16.08.2014 kommt doch nur einmal vor, denn der 16.08.2015 ist ein anderes Datum und somit ungleich meiner beiden ComboBoxen, wenn ausgeählt - August und 2014. Weisst du Rat???

Danke und Gruß Frank H.


  

Betrifft: AW: Datum prüfen von: Hajo_Zi
Geschrieben am: 17.10.2014 11:15:13

es sollte mit allen Werten der Combobox verglichen werden. Aber das habe ich wahrscheinlich falsch verstanden. Ich bin dann raus.

Gruß Hajo


  

Betrifft: AW: Datum prüfen von: Ewald
Geschrieben am: 17.10.2014 13:35:21

Hallo,

cbMonat kannst du einfach so füllen.

cbMonat.List = Application.GetCustomListContents(8)
dafür brauchst du keine Schleife

zum Überprüfen brauchst du die Monatszahl
SN = Month(CDate(cbMonat & " 1.1"))
prüfen dann so
If Month(ActiveCell.Value) = SN Then
Gruß Ewald


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 19:24:56

Hallo Ewald!

Der Ansatz scheint nicht schlecht zu sein. Aber leider funzt es nicht wie gewünscht.

18.06.2014
15.07.2014
15.08.2014
15.09.2014
15.10.2014
17.11.2014
15.12.2014
15.01.2015
16.02.2015
16.03.2015
15.04.2015
15.05.2015
15.06.2015
15.07.2015
17.08.2015
15.09.2015
15.10.2015
16.11.2015
15.12.2015
15.01.2016
15.02.2016
15.03.2016
15.04.2016
16.05.2016
15.06.2016
15.07.2016
15.08.2016
15.09.2016
17.10.2016
15.11.2016
15.12.2016
16.01.2017
15.02.2017
15.03.2017
17.04.2017
15.05.2017
15.06.2017
17.07.2017
15.08.2017
15.09.2017
16.10.2017
15.11.2017
15.12.2017
15.01.2018
15.02.2018
15.03.2018
16.04.2018
15.05.2018
15.06.2018
16.07.2018
15.08.2018
17.09.2018
15.10.2018
15.11.2018
17.12.2018
15.01.2019
15.02.2019
15.03.2019
15.04.2019
15.05.2019
17.06.2019
15.07.2019
15.08.2019
16.09.2019
15.10.2019
15.11.2019
16.12.2019
15.01.2020
17.02.2020
16.03.2020
15.04.2020
15.05.2020
15.06.2020
15.07.2020


So stehen die Datumswerte untereinander. Nach deiner Lösung erhielt ich den Wert Spale D neben dem 15.01.2020. Ich wollte aber da jetzt Oktober in der CbMonat - Box steht den Wert Spalte D neben dem 15.10.2014 haben. Hast du ne andere Idee? Danke!

Gruß Frank H.


  

Betrifft: AW: Datum prüfen von: Ewald
Geschrieben am: 17.10.2014 19:42:14

Hallo Frank,

das war ja nur auf den Monat bezogen, du mußt ja auch das Jahr abfragen.

If Jahr(ActiveCell,Value)= cdbl(cbJahr) and Month(ActiveCell.Value) = SN Then
dann sollte es auch den richtigen Wert geben

Gruß Ewald


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 20:31:39

Ich noch mal! Jetzt liefert er mir gar keinen Wert, woran kann es liegen?

Gruß Frank H.


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 17.10.2014 21:24:54

Hallo Ewald!

Nun hab ich selber 'ne Lösung gefunden. Aber dein Ansatz war trotzdem für andere Dinge sehr hilfreich. Man wird so immer besser in VBA ! Danke!

Gruß und ein schönes WE!

Frank H.


  

Betrifft: AW: Datum prüfen von: Daniel
Geschrieben am: 17.10.2014 22:36:56

Hi
Wenn es zu jedem Monat einen Tag gibt und die Tabelle sortiert ist, dann kannst du auch folgendes tun:
1. Erstelle aus den Textboxeinträgen das Datum des Monatsletzten.
2. Ermittle über worksheetfunction.match(Monatsletzten, Spalten A, 1) die Zeilennummer und trage in diese Zeile in Plate D den wert ein.
Wenn es den Monatsletzten nicht gibt, dann nimmt Match den nächstkleineren wert als Ergebnis.

Gruß Daniel


  

Betrifft: AW: Datum prüfen von: Ewald
Geschrieben am: 17.10.2014 22:45:42

Hallo Frank,

es muß Year und nicht Jahr heißen

hier mal ein Beispiel für Tabelle1 (Spalte A die Datümer, Spalte D die Werte)

Code gehört in die Userform

Private Sub cbMonat_Change()
Dim SM
Dim SJ
Dim Bereich As Range
Dim zelle As Range
Set Bereich = Sheets(1).Range("A2:A200")
SM = Month(CDate(cbMonat & " 1.1"))
SJ = CDbl(cbJahr)
For Each zelle In Bereich
If Year(zelle.Value) = SJ And Month(zelle.Value) = SM Then
UserForm1.TextBox1.Value = zelle.Offset(0, 3).Value
End If
Next
End Sub
nach Auswahl in cbMonat wird in der Textbox der Wert angezeigt

Tabelle und den Textboxnamen an deine Gegebenheiten anpassen.

Gruß Ewald


  

Betrifft: AW: Datum prüfen von: Frank H.
Geschrieben am: 18.10.2014 07:46:16

Hallo und Guten Morgen!

Werd ich ausprobieren!

Gruß Frank H.


 

Beiträge aus den Excel-Beispielen zum Thema "Datum prüfen"