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 :

Besoin d'aide sur la gestion de commandbutton


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    apprentis
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : apprentis
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Par défaut Besoin d'aide sur la gestion de commandbutton
    bonjour, actuellement je fait un petit programme en VBA avec un userform,mais j'ai un problème et j'ai beau cherchez je n'arrive pas a voir comment je peut le résoudre .
    voici mon problème dans mon userform j'ai une centaine de commandbutton nommer de bt1 à Bt100 et je voudrai pouvoir changer la couleur de fond de chaque bouton en fonction de ce qu'il y a marquer dans les cellule "A1" a "A100".
    Exemple si il y a marquer 1 en A3 alors le bouton bt3 devra prendre la couleur n°1(les couleur sont déjà affecter a des variables et il y en a environ une dizaine) .
    je sais modifier la couleur pour un bouton mais je n’arrive pas a passer d'un bouton à un autre ,sans a avoir a écrire 100 fois la même fonction pour donner la valeur de la couleur de chaque cellule à chaque bouton.

    pouvez vous m'aider a résoudre mon problème ?
    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 100
     Me.Controls("BT" & i).BackColor = &HC0FFFF
    Next

  3. #3
    Membre régulier
    Homme Profil pro
    apprentis
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : apprentis
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 100
     Me.Controls("BT" & i).BackColor = &HC0FFFF
    Next
    Merci rdurupt, ça fonctionne exactement comme ce que je voulais mais par contre pourrais tu m'expliquer ce que c'est "Me.Controls" ?
    car je suis débutant en VBA et je cherche a comprendre ce que je fait et l'aide Windows n'a pas pue m’éclairer sur cette fonction.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Me est le UserForm actif, Controls est la collection de tous les contrôles don dispose le UserForm

  5. #5
    Membre régulier
    Homme Profil pro
    apprentis
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : apprentis
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Par défaut
    merci pour ton explication

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce qui suit. A mettre dans le module de ta Form. Attention, tous tes boutons doivent commencer de la même manière, par "Bt" et non "bt" ou alors, adapte dans le code au niveau de la fonction "Split" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Private Sub UserForm_Activate()
     
        Dim Cmd As MSForms.CommandButton
        Dim Num As Integer
        Dim Couleur As Long
     
        For Each Cmd In Me.Controls
     
            Num = Split(Cmd.Name, "Bt")(1)
     
            Select Case Worksheets("Feuil1").Range("A" & Num).Value
     
                Case 1, 3, 5
     
                    Couleur = RGB(255, 255, 255) 'blanc
     
                Case 2, 4, 6
     
                    Couleur = RGB(255, 0, 0) 'rouge
     
                Case 7, 9, 11
     
                    Couleur = RGB(0, 0, 255) 'bleu
     
                'ext...
     
            End Select
     
            Cmd.BackColor = Couleur
     
        Next Cmd
     
    End Sub
    La variable "Couleur" est ici pour le test, adapte en remplaçant par ta ou tes variables.

    Hervé.

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

Discussions similaires

  1. [xsl1-1 et xsl-fo] besoins d'aide sur une gestion d'index
    Par Fleur_86 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/06/2009, 14h53
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 16h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

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