Changer le noms de plusieurs boutons dans une feuille excel

Résolu
Mabelle60 Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   -  
Mabelle60 Messages postés 167 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

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Mabelle60 Messages postés 167 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