Changer le noms de plusieurs boutons dans une feuille excel [Résolu/Fermé]

Signaler
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
-
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
-
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

Messages postés
15519
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 janvier 2021
1 436
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
Messages postés
469
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
21 juin 2017
122
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