761 Aufrufe
Gefragt in Tabellenkalkulation von heiko1985 Mitglied (127 Punkte)

Hallo zusammen

Ich habe in meiner UserForm mehrere Schaltflächen (CommandButtons).

Die heißen alle “CmdBttn1“, “CmdBttn2“, “CmdBttn3“ usw.

Jetzt möchte ich deren Beschriftung ändern. Das möchte ich gerne automatisieren.

Mein erster Versuch klappt natürlich nicht:

For i = 1 to 10

Me. CmdBttn & i & .Caption = “MeinText” & i

Next

Wisst ihr, wie man das umsetzen könnte?

Vielen Dank und Gruß

Heiko1985

3 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)
ausgewählt von heiko1985
 
Beste Antwort

Hallo Heiko,

wenn du die Beschriftung mit einer Schleife ändern willst, dann probiere es mal so:

Dim i As Integer
For i = 1 To 10
 UserForm1.Controls("CommandButton" & i).Caption = "Test " & i
Next i

Aber Achtung!

Der Text wird hierdurch nicht dauerhaft geändert. Rufst du die Userform das nächste mal wieder auf, dann steht der Text da, den du in den Eigenschaften der CommandButtons festlegst.

Willst du das dauerhaft haben, müsstest du den Text z.B. über das UserForm - Initialize - Ereignis ändern.

Gruß

M.O.

+1 Punkt
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Heiko,

da deine Button nicht "CommandButton..." heißen, musst du in einer Schleife über alle Steuerelemente laufen, prüfen wie der Name des laufenden Elements ist und kannst dann die Cpation ändern, indem du einfach den Namen und seine laufende Nummer verwendest:

Dim ctrElement As Control
For Each ctrElement In Controls
    If ctrElement.Name Like "CmdBttn*" Then
        ctrElement.Caption = Application.Substitute(ctrElement.Name, "CmdBttn", "MeinText")
    End If
Next ctrElement


Bis später, Karin

0 Punkte
Beantwortet von heiko1985 Mitglied (127 Punkte)
Hallo ihr zwei

Perfekt! Viiielen Dank!


Gruß
Heiko1985
...