IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

désigner un commandbutton avec une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 20
    Par défaut désigner un commandbutton avec une variable
    Bonjour,

    Je souhaiterais modifier la couleur de fond d'un commandbutton en l'appelant à partir d'un nom de variable (qui correspond à la propriété caption du bouton). Je voudrais inclure le tout dans une boucle d'itération... et je patauge lamentablement ! Si quelqu'un peut m'aider merci par avance...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim Anim As CommandButton
        For a = 1 To 7
            Set Anim = "ADA" & a
            Anim.BackColor = 5
        Next

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ton boutton est sur une feuille ou userform?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 20
    Par défaut
    Les boutons sont dans un userform. Il y en a une cinquantaine.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim but As Control, a As Long
    a = 1
    For Each but In UserForm1.Controls
        If TypeName(but.Object) = "ICommandButton" Then
            but.Caption = "ADA " & a
            but.BackColor = 50
            a = a + 1
        End If
    Next but

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    Bonjour,

    Une autre possibilité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i As Integer
     
    For i = 1 To 7
        Me.Controls("ADA" & i).BackColor = 5
    Next i

    bonne journée
    michel

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 20
    Par défaut Merci !
    Merci Michel et Benjamin,

    Les deux solutions fonctionnent très bien et je vais pouvoir continuer dans mon projet. Juste pour info et par curiosité : j'avais entre temps fait une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim Anim As CommandButton
        For Each Anim In Controls
            Anim.BackColor = 12640511
        Next

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    le problème de controls est qu'il englobe tous les contrôles de ton userform.Donc si tu ajoutes autre chose que des commandbutton il seront aussi pris dans ta boucle. C'est pour ça que j'ai rajouté un test par rapport à ta boucle.
    La solution de silkyroad ne rencontre pas ce problème car elle appelle les contrôles par leurs noms en supposant que tes commandbutton ont été renommés "ADA ..".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rafraichissement avec une variable
    Par niceday dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 10h08
  2. Réponses: 5
    Dernier message: 25/06/2005, 11h35
  3. Réponses: 2
    Dernier message: 14/05/2004, 14h32
  4. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo