UserForm Label ändern

227 Aufrufe
Gefragt 10 Jan in Tabellenkalkulation von ahorn38 Experte (2,646 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 10 Jan von xlKing
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 11 Jan von ahorn38 Experte (2,646 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 11 Jan von ahorn38 Experte (2,646 Punkte)
... hier noch der link zu der Testdatei:
https://www.file-upload.net/download-12916567/Mappe1.xlsm.html
Gruß A.
0 Punkte
Beantwortet 11 Jan von m-o Profi (11,073 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 11 Jan von ahorn38 Experte (2,646 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 11 Jan von xlKing
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.
...