ich möchte eine Schaltfläche in einer Tabelle per VBA beschriften.
Wenn ich über die Symbolleiste "Formular" eine Schaltfläche einfüge,
dann hat sie z.B. die Bezeichnung "Schlatfläche 20"
Ich habe folgenden Code gefunden:
Sheets("Tabelle1").CommandButton1.Caption = "test"
Wie kann ich ihn auf die "Schaltfläche 20" anwenden ?
Danke im Voraus
Gruß Klaus
"Klaus Heinrich" schrieb:
> ich möchte eine Schaltfläche in einer Tabelle per VBA beschriften.
>
> Wenn ich über die Symbolleiste "Formular" eine Schaltfläche einfüge,
> dann hat sie z.B. die Bezeichnung "Schlatfläche 20"
>
> Ich habe folgenden Code gefunden:
>
> Sheets("Tabelle1").CommandButton1.Caption = "test"
>
> Wie kann ich ihn auf die "Schaltfläche 20" anwenden ?
Ein Schaltfläche aus der Formularleiste ist keine Commandbutton sondern
schlicht ein Button.
Option Explicit
Sub beschrifte_mich()
Dim btn As Button
Set btn = Me.Buttons(20)
btn.Caption = "Hallo"
End Sub
--
Grüße Boris
www.excelformeln.de
kleiner Nachtrag:
Das Schlüsselwort "Me" bezieht sich natürlich auf das Tabellenmodul, in dem
der Button sich befindet. Aus einem allgemeinen Modul heraus musst Du
natürlich nicht "Me" sondern den Blattnamen verwenden.
--
Grüße Boris
"{Boris}" schrieb:
klingt vielversprechende, aber:
ich erhalte die Fehlermeldung:
Laufzeitfehler 1004:
Die Buttons-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet
werden in der Zeile:
Set btn = Sheets("Kasse").Buttons(20)
auch
Set btn = ThisWorkbook.Sheets("Kasse").Buttons(20)
macht keinen Unterschied
Gruß Klaus
{Boris} schrieb:
"Klaus Heinrich" schrieb:
> klingt vielversprechende, aber:
>
> ich erhalte die Fehlermeldung:
>
> Laufzeitfehler 1004:
> Die Buttons-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet
> werden in der Zeile:
>
> Set btn = Sheets("Kasse").Buttons(20)
>
> auch
>
> Set btn = ThisWorkbook.Sheets("Kasse").Buttons(20)
>
> macht keinen Unterschied
Nur weil Deine Schaltfläche den Namen "Schaltfläche 20" trägt, muss sie noch
längst nicht den Index 20 in der Buttons-Auflistung belegen. Wenn du z.B.
zwischendurch irgendwelche Buttons wieder gelöscht hast, dann rückt der Index
der "Schaltfläche 20" entsprechend nach vorne. Der Name "Schaltfläche 20"
bleibt hingegen bestehen.
Es gibt jetzt 2 Möglichkeiten:
1)
Den Index der Schaltfläche herausfinden, indem du die Schaltfläche markierst
und diesen Code ausführst:
Sub index_herausfinden()
MsgBox Sheets("Kasse").Buttons(Selection.Name).Index
End Sub
Danach - wie von Dir angewendet - den Button über den ermittelten Index
ansprechen.
2)
Die Schaltfläche nicht über den Index, sondern via Namen ansprechen. Dabei
lautet der Name innerhalb der Buttons-Auflistung nicht "Schaltfläche XX"
sondern "Button XX".
Die Ansprache erfolgt dann so:
Sub ueber_Namen_ansprechen()
MsgBox Sheets("Kasse").Buttons("Button 20").Caption
ich habe den Button über den Namen angesprochen und es funktioniert!
Besten Dank und Gruß
Klaus
{Boris} schrieb: