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

Beiträge aus den Excel-Beispielen zum Thema " Datumsformat wird nicht angenommen?!"