Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Comobox - letzten Tag des Vormonates

Comobox - letzten Tag des Vormonates
07.03.2019 07:42:00
STeve
Guten Morgen an alle lieben Helfer.............habe (für euch) ein kleines Problem:
Eine Combobox gibt mir Jahr und Monat zurück

DateSerial(ComboJahr, ComboMonat, 0)

- jetzt bräuchte ich aber den letzten Tag des Vormonats als Datum:
z.b.: ComboJahr = 2019, ComboMonat = April
dann bräuchte ich den 31.03.2019
Besten Dank und mfg
STeve

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Comobox - letzten Tag des Vormonates
07.03.2019 08:11:35
hary
Moin Steve
DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0)

gruss hary
Klappt super.........aber ?
07.03.2019 08:29:18
STeve
Guten Morgen hary........klappt natürlich bestens. Tausend Dank.........
aber das ist doch wirklich unverständlich? - woher nimmt er den letzten Tag bei deiner Lösung?
Beschreibung (Datumfunktionen):
Falls sich Month oder Day außerhalb der eigentlich gültigen Bereiche (1-12 bzw. 1-31) befinden, wird der „überzählige“ Teil zum Ergebnis hinzugezählt bzw., bei negativen Werten, abgezogen.
Debug.Print DateSerial(2019, 1, 32)
01.02.2018
wieso geht dann nicht:
DateSerial(ComboJahr, ComboMonat, -1)
mfg
STeve
Anzeige
AW: aber ? steht in der Hilfe
07.03.2019 08:49:53
hary
Moin
DateSerial(ComboJahr, ComboMonat, -1)
Lies mal in den Hilfe.
"Gibt einen Wert vom Typ Variant (Date) zurück, der die angegebene Jahres-, Monats- und Tageszahl enthält."
"year Erforderlich. Wert vom Typ Integer. Zahl im Bereich von 100 bis 9999 (einschließlich) oder ein numerischer Ausdruck.
month Erforderlich. Wert vom Typ Integer. Beliebiger numerischer Ausdruck.
day Erforderlich. Wert vom Typ Integer. Beliebiger numerischer Ausdruck."
Comboboxen geben Text zurueck.
DateSerial(2019, 1, 32) Januar hat nur 31 Tage also rechnet Excel 31 + 1 ist dann halt der 1.2.
gruss hary
Anzeige
Steh am Schlauch.........
07.03.2019 09:44:15
STeve
Danke hary für deine Mühen............aber ich v e r s t e h e es einfach nicht, dass hier (bei deiner Lösung) der letzte Tag des Vormonats ausgeworfen wird:
ComboJahr ="2019"
ComboMonat ="April"
DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0)
Wo versteckt sich hier dass der 31.03.2019 gesucht wird?
mfg STeve
AW: Steh am Schlauch.........
07.03.2019 09:54:29
Nepumuk
Hallo STeve,
warum nicht einfach so?
DateSerial(CLng(ComboJahr), ComboMonat.ListIndex + 1, 0)

Gruß
Nepumuk
AW: Steh am Schlauch.........
07.03.2019 19:23:35
STeve
Hallo Nepumuk……
Deine Lösung wirft bei mir den 31.1.2019 aus.....aber Danke für deine Unterstützung.
Hoffe jetzt mit den ua. Tests - kapiere ich endlich wie das geht:
Sub letzterTag()
ComboJahr = "2019"
ComboMonat = "April"
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0)         '31.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 1 - 1)     '31.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0 - 1)    '30.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 1)        '1.4.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 2)       '2.4.2019
End Sub
Wünsche euch noch einen schönen Abend.
mfg STeve
Anzeige
Das ist ganz einfach...
07.03.2019 10:49:31
EtoPHG
STeve,
Wenn du die Hilfe zu Dateserial liest, steht im zweiten Abschnitt der Hinweise:
Im folgende Beispiel werden numerische Ausdrücke anstelle von absoluten Datumswerten verwendet. Hierbei gibt die DateSerial-Funktion ein Datum zurück, bei dem es sich um den Tag vor dem ersten Tag (1 - 1) handelt, zwei Monate vor August (8 - 2), 10 Jahre vor 1990 (1990 - 10), das heißt, 31. Mai 1980.
Die Beispiele jeweils in (Klammern). Das erste bezieht sich auf den Tag und 1-1 = 0, heisst es wird der Tag vor dem ersten Tag des Monats zurückgegeben und das ist natürlicherweise der letzte Tag des Vormonats!
Gruess Hansueli
Anzeige
AW: Das ist ganz einfach...
07.03.2019 19:26:36
STeve
Danke EtoPHG… habe jetzt getestet:
Sub letzterTag()
ComboJahr = "2019"
ComboMonat = "April"
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0)         '31.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 1 - 1)     '31.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 0 - 1)    '30.3.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 1)        '1.4.2019
MsgBox DateSerial(CLng(ComboJahr), Month("1." & ComboMonat), 2)       '2.4.2019
End Sub
Danke und mfg
STeve
Anzeige
Ungereimtheiten in der Beschreibung...
07.03.2019 08:16:24
EtoPHG
Hallo Steve,
Ist es zuviel verlangt, von einem Anfragenden Präzision und Vollständigkeit zu verlangen?
1. Betreff: ComoBox... statt Combobox
2. Eine Combobox...nach der darauffolgenden Beschreibung sind es 2 verschiedene Comboboxen.
3. z.b.: ComboJahr = 2019, ComboMonat = April, die Default-Eigenschaft Value ist ein Text. Also "2019" und "April". Text, sofern es sich um Zahlen handelt, kann zwar als Übergabe-Parameter an die Dateserial-Funktion verwendet werden, ist aber nicht zu empfehlen, besser ist es eine Typenwandlung auf einen numerischen Ausdruck anzuwenden!. Ein Text wie "April" würde zu einem Typen-Fehler (Laufzeitfehler '13') führen, was du allerdings nicht erwähnst. Es müsste
die Zahl 4, anstelle von "April" übergeben werden. Dann würde die Dateserial-Funktion auch das verlangte Datum 31.3.2019 zurückgeben.
Also wo liegt jetzt Dein Problem?
Gruess Hansueli
Anzeige
Sorry......
07.03.2019 09:08:51
STeve
Guten Morgen s.g. EtoPHG ...lieber Hansueli
Entschuldige
1.) meinen vergessenen Buchstaben im Betreff
2.) ...Sorry natürlich sind es zwei Comboboxen
3.) mein VBA Können ist leider immer noch Basic (wie immer angegeben) - versuche mein Bestens - und "wurstle" mich recht und schlecht durch meine Projekte und Dank eurer Hilfe gelingt einiges.
Danke für deine Aufklärung betr. der DateSerial- Funktion.
Wünsche noch einen schönen Tag
mfg
STeve

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige