Changer le noms de plusieurs boutons dans une feuille excel

Résolu
Mabelle60 Messages postés 468 Date d'inscription   Statut Membre Dernière intervention   -  
Mabelle60 Messages postés 468 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour la communauté
Il y a un moment que je n'ai pas travaillé sous vba et j'ai un peu de mal à m'y remettre.

Voici mon problème
Dans une feuille excel (2010), j'ai 5 ToggleButton (control activex).
Je souhaite, lorsque j'active cette feuille, 'réinitialiser' mes boutons.
J'ai essayé 2 méthodes, mais chacune d'elle m'alerte sur des erreurs
Ces bouts de codes sont intégrés à une fonction
Private Sub Worksheet_Activate() de la feuille ou se trouvent les boutons.

1° Méthode
Dim Tableau() As Variant
Tableau = Array("ToggleButton1", "ToggleButton2", "ToggleButton3", "ToggleButton4", "ToggleButton5")
Worksheets("Feuil1").Shapes.Range(Tableau).Select
With Selection
.Caption = "OK"
.BackColor = &H8000&
.Value = False
.Enabled = False
End With
Cette méthode bloque sur les lignes Caption et Backolor
Erreur d'execution 1004 (pour le Caption)
Impossible de définir la proprieté Caption de la classe DrawingObjects
&
Erreur d'execution 438 (pour le BackColor)
Proprieté ou méthode non gérée par cet objet

2° méthode
Dim i As Integer
For i = 1 To 5
With Controls("ToggleButton" & i)
.Caption = "OK"
.BackColor = &H8000&
.Value = False
.Enabled = False
End With
Next i
Erreur de compilation
Sub ou fonction non définie
Controls est surligné en bleu...

Quelqu'un aurait il une piste à me proposer?
Cordialement
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 714
 
Bonjour,

Sub Couleur_ToggleButton()
    For N = 1 To 5
        With ActiveSheet.OLEObjects("ToggleButton" & N).Object
            .Caption = "OK"
            .BackColor = &H8000&
            .Value = False
            .Enabled = False
        End With
    Next N
End Sub
-1
Mabelle60 Messages postés 468 Date d'inscription   Statut Membre Dernière intervention   131
 
Merci f894009
Je ne suis pas passé très loin... J'ai bien essayé avec le ActiveSheet mais sans passer par OLEOBjects(....).Object
Merci beaucoup, nickel
0