nochmal richtig (ich hab in die Datei geschaut)
18.12.2012 09:19:10
Klaus
Hallo Heike,
du hattest oben deine Datei verlinkt, da hab ich mal reingeschaut. Der "Fehler" war genau der von mir vermutete:
Private Sub CommandButton18_Click()
UserForm1.Show
UserForm1.CommandButton21.Caption = Sheets("Tabelle1").Range("B1").Value
UserForm1.CommandButton20.Caption = Sheets("Tabelle1").Range("B2").Value
UserForm1.CommandButton23.Caption = Sheets("Tabelle1").Range("B3").Value
End Sub
du zeigst ERST die Userform, und änderst DANN die Buttons. Sichtbar wirds erst das nächste mal. Einfacher weg: das ganze drehen.
Private Sub CommandButton18_Click()
UserForm1.CommandButton21.Caption = Sheets("Tabelle1").Range("B1").Value
UserForm1.CommandButton20.Caption = Sheets("Tabelle1").Range("B2").Value
UserForm1.CommandButton23.Caption = Sheets("Tabelle1").Range("B3").Value
UserForm1.Show
End Sub
Das machst du eben für jeden deiner drei Buttons und es funktioniert.
ABER:
Szenario: Morgen kommen noch 12 Blätter dazu, und noch 15 Buttons in der Userform. Ausserdem benennst du einige Buttons um. Jetzt musst du jede Änderung X-Mal in den Code der einzelnen Userform-Aufruf-Buttons schreiben, und einen vergisst du bestimmt ... darum machen wirs gleich besser und lassen deun Userform-Aufruf-Button unberührt:
Private Sub CommandButton18_Click()
UserForm1.Show
End Sub
und schreiben das ganze Button-Caption-Gehabe EINMALIG in das Start-Ereignis der Userform:
Private Sub UserForm_Initialize()
Me.CommandButton21.Caption = Sheets("Tabelle1").Range("B1").Value
Me.CommandButton20.Caption = Sheets("Tabelle1").Range("B2").Value
Me.CommandButton23.Caption = Sheets("Tabelle1").Range("B3").Value
End Sub
und dann ist das sogar recht sauber programmiert ;-)
Grüße,
Klaus M.vdT.