Herbers Excel-Forum - das Archiv

Datumsformat wird nicht angenommen?!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Datumsformat wird nicht angenommen?!
von: Daniela
Geschrieben am: 08.10.2003 10:00:26
Hallo,

ganz kleines Problem:

geburtstag = Format(CDate(Datum), "dd/mm/yy")
MsgBox geburtstag

Warum wird das Format hier nicht angenommen. Ich bekomme in der Messagebox immer ein 4-stelliges Datum?!

Weiß wer was?
Daniela

Bild

Betrifft: AW: Datumsformat wird nicht angenommen?!
von: PeterW
Geschrieben am: 08.10.2003 10:16:01
Hallo Daniela,

das funktioniert schon. Was verbirgt sich denn hinter Datum und was wird in der MsgBox angezeigt?

Gruß
Peter
Bild

Betrifft: AW: Datumsformat wird nicht angenommen?!
von: Daniel
Geschrieben am: 08.10.2003 10:24:09
Hallo Peter,

also so sieht bei mir die ok_Click() von einem Formular aus.
Die Textfelder heissen startdatum und endedatum.ö

Was stimmt denn dann nicht? Ich dachte nämlich auch, dass die Syntax stimmen würden...
Daniela

Private Sub ok_Click()
Dim start As Date
Dim ende As Date
If startdatum = "" And endedatum = "" Then
MsgBox "Ja irgendwas muss schon drinstehen..."
ElseIf startdatum = "" Then
MsgBox "Startdatum fehlt!"
ElseIf endedatum = "" Then
MsgBox "Endedatum fehlt!"
Else
start = Format(CDate(startdatum), "dd/mm/yy")
ende = Format(CDate(endedatum), "dd/mm/yy")
MsgBox start
MsgBox ende
End If
Unload zeitraum
End Sub

Bild

Betrifft: AW: Datumsformat wird nicht angenommen?!
von: Harald Kapp
Geschrieben am: 08.10.2003 10:30:05
Hallo Daniela,
da start und ende als Date definiert sind, macht die Format-Funktion keinen Sinn. Format() formatiert gerade einen Zahlenwert (oder ein Datum) auf eine bestimmte Anzeige als String. Also müsste es heißen

Dim start, ende as String


Gruß Harald
Bild

Betrifft: AW: Datumsformat wird nicht angenommen?!
von: Daniela
Geschrieben am: 08.10.2003 10:36:36
Hallo Harald,

danke es tut!!

Aber eine Frage hätte ich noch:
Wie greife ich aus einem anderen Makro auf die Werte start und ende zu?
Wie übergebe ich sie sozusagen an das Makro, das das Formular aufgerufen hat?

Sub xy()
'hier wird das Formular aufgerufen
'und hier benötige ich start und ende?? aber wie??
End Sub


Sub ok_click()
hier ermittle und formatiere ich start und ende
End Sub


Danke,
Daniela
Bild

Betrifft: Public
von: Harald Kapp
Geschrieben am: 08.10.2003 11:05:45
Hallo Daniela,
start und ende sind zunächst nur im Ereignismakro der UserForm definiert. Daher musst Du die Definition ändern:

In dem übergeordneten Modul definierts du etwa so:

Public start, stop as String 'Variablen asl public bekannt machen. Steht VOR
Sub xy()!
Sub xy()
End Sub


In der Ereignisprozedur darfst Du start und ende NICHT noch einmal definieren! Sondern einfach nur verwenden.

(Wenn DU in
Sub ok_click() noch einmal DIM start, ende as String definierts, dann wären das zwei neue Variablen!)
Gruß Harald

Bild

Betrifft: AW: Public
von: Daniela
Geschrieben am: 08.10.2003 12:40:39
Hallo Harald,

bin sehr dankbar für Deine hilfreichen Tipps, habe das mit der Public Deklaration auch rausgefunden, ABER:

Die Prozedur xy() steht im Modulblatt1,
die ok_click() steht aber im Ordner Formulare/UserForm1

Mein Test hat mit der Public Deklaration nicht funktioniert... liegt das daran, dass ok_click() nicht in einem Modulblatt steht?
Habe zum Testen auch mal die ok_click() auf das Modulblatt der Prozedur xy() geschrieben, aber dann wird ok_click() gar nicht mehr ausgeführt?!

Ich baue auf Dich - bin noch nicht so VBA bewandert...
Daniela
Bild

Betrifft: Publi und Datumsprüfung
von: Harald Kapp
Geschrieben am: 08.10.2003 14:51:41
Hallo Daniela,
ich habe ein Beispiel mit dem Kalender-Steuerelement und den Public-Varablen auf dem Server gestellt:

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

Tabelle runterladen und das Makro "test" starten.

Gruß Harald
 Bild
Excel-Beispiele zum Thema " Datumsformat wird nicht angenommen?!"
Datumsformatkonvertierung (von Heinrich Stuerzl)