Clever-Excel-Forum

Normale Version: Excel vba Commandbutton mit Namen ansprechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

darf ich mal wieder um Eure geschätzte Hilfe bitten?

In einer Userform habe ich mehrere (>10) Commandbutton's verteilt (händisch) angelegt.
Jetzt meine Frage, ist es möglich alle Buttons per Makro in eine bestimmte Position, also alle untereinander, mit kleinem Zwischenabstand und gleicher Schaltflächengröße auf der Userform anzuordnen?
Vielleicht geht auch noch eine automatische Beschriftung (Caption) der einzelnen Buttons?

Das Ganze soll dann bei jedem Aufruf der Userform erfolgen.

Ich hoffe dass dies überhaupt funktionieren kann und freue mich auf Eure Hilfe.
Hallo,

natürlich geht das. Du kannst alle Schaltflächen gleichzeitig markieren. (Zum Beispiel Strg-Taste gedrückt halten, Schaltflächen anklicken). Dann über Eigenschaften eine Größe zuweisen. Das wirkt dann auf alle markierten Flächen. Über Format / Ausrichten die Schaltflächen zum Beispiel linksbündig anordnen. Dann über Format / Vertikaler Abstand die Abstände zueinander anpassen. Wenn das einmal gemacht ist, bleibt das so erhalten.
Die Beschriftungen brauchen auch nur einmal vergeben werden, oder soll da  was dynamisches rein?
Hallo Klaus-Dieter,

vielen Dank für die schnelle Rückmeldung, funktioniert super!
Hätte doch genauer in den VB-Editor schauen sollen.

Aber mich würde es trotzdem interessieren wie man das mit einem VB-Code umsetzen könnte, auch das mit der Beschriftung.
Vielleicht hättest Du mir da trotzdem einen Code-Schnippsel?
Hallo,

dann versuche es mal so:

Code:
Private Sub UserForm_Initialize()
   Dim intAnz As Integer
   For intAnz = 1 To 10
       With Controls("CommandButton" & intAnz)
           .Caption = "Schalter " & intAnz
           .Left = 120
           .Top = 30 + intAnz * 30
       End With
   Next intAnz
End Sub
Hallo Klaus-Dieter,

super, vielen Dank...genau das habe ich u.a. gesucht.

Hab noch einen schönen Sonntag!