479 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,
ich habe eine Userform mit 31 Labels, die ich mit dem Datum des aktuellen Monats ändern möchte:
[code]intTage = Day(DateSerial(Year(Date), Month(Date) + 1, 0))
For i = 1 To intTage
    UserForm1.Controls("Label" & i).Caption = Format(DateSerial(Year(Date), Month(Date), i), "DD.MM.YY")
Next[/code]

Ich kriege zwar keine Fehlermeldung, aber die Labels werden nicht "Überschrieben". Was läuft da falsch?
Danke und Gruß A.

6 Antworten

0 Punkte
Beantwortet von
Hallo Andreas,

bei mir werden die Labels überschrieben. Sicher dass die Namen noch korrekt sind?
Falls dein Code größer ist und etwas länger dauert probiers mal mit DoEvents am Ende der Schleife.

Gruß Mr. K.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,
danke für deinen Hinweis. ich denke an den Namen kann es nicht liegen. Ich habe den Code in einem Modul. Kann sein, daß das der Fehler ist? Von wo muß ich den Code denn aufrufen?
Gruß A.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
... hier noch der link zu der Testdatei:
https://www.file-upload.net/download-12916567/Mappe1.xlsm.html
Gruß A.
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Andreas,

die vorherigen Antworten waren von Mr. K.

Der folgende Code sollte funktionieren:

[code]Sub start()

intTage = Day(DateSerial(Year(Date), Month(Date) + 1, 0))

For i = 1 To intTage
 UserForm1.Controls("Label" & i).Caption = Format(DateSerial(Year(Date), Month(Date), i), "DD.MM.YY")
Next

UserForm1.Show

End Sub[/code]
Benenne Labels und Optionbuttons in einem allgemeinen Modul etc. bevor du die Userform startest.
Natürlich kannst du die Labeles auch beim Start der Userform benennen:

Code in einem Standard-Modul:
[code]Sub start()

UserForm1.Show

End Sub[/code]
Code im VBA-Projekt der Userform:
[code]Private Sub UserForm_Initialize()
intTage = Day(DateSerial(Year(Date), Month(Date) + 1, 0))

For i = 1 To intTage
 UserForm1.Controls("Label" & i).Caption = Format(DateSerial(Year(Date), Month(Date), i), "DD.MM.YY")
Next
End Sub[/code]
Gruß

M.O.



Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,

mir ist doch noch ein Licht aufgegangen....

Ich muß den Code unter

[quote]Private Sub UserForm_initialize()[code]

schreiben und im Modul lediglich userform1.show aufrufen, dann klappt es.
Sorry für die Verwirrung.
VG Andreas
0 Punkte
Beantwortet von
Hi All,

ich war natürlich davon ausgegangen, dass der Code bereits in Userform_Initialize liegt. Danke M.O. für die schnelle Hilfe. Schön dass es jetzt klappt.

Mr. K.
...