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 :

Revenir sur couleur précédente si checkbox décoché


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 116
    Par défaut Revenir sur couleur précédente si checkbox décoché
    Bonjour,

    J'ai une cellule de couleur orange. J'ai associé à cette cellule un checkbox. Si je coche cette checkbox, ma cellule devient bleu, ça c'est ok.
    Mais ce que j'aimerai faire maintenant c'est que si je décoche ce checkbox, ma cellule redevient ici en l'occurence orange. Mais ma cellule
    pourrait très bien être initiallement de couleur verte et non pas orange donc est-ce qu'il y a une fonction qui permet de recolorier la cellule avec
    la couleur initiale utilisée si je décoche le checkbox ?
    Merci!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CheckBox21_Click()
        If CheckBox21 = True Then
            Range("A1").Interior.color = vbBlue
        Else
            If CheckBox21 = False Then
            range("A1").Interior.Color= 'ligne à programmer
            End If
        End If
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour l'orange, tu dois donner le code RGB de cette couleur car il n'y a que sept ou huit constantes de couleur don vbBlue, vbRed, etc.
    Pour connaître ce code, il te suffit de mettre la couleur orange dans une cellule quelconque (par exemple A2) et dans la fenêtre d'exécution de l'éditeur VBA (Ctrl+G) tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? range("A2").Interior.Color
    et tu valides par la touche Entrée, le code RGB pour l'orange que j'utilise est 40407

    Pour le code j'utiliserais plutôt la fonction IIF

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CheckBox1_Click()
      With Me.CheckBox1
       Range("A2").Interior.Color = IIf(.Value, vbBlue, 49407) ' Si True bleu, False orange
      End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 116
    Par défaut
    Bonjour Philippe,

    J'ai essayé ton code mais ça ne fait pas ce que je souhaite...
    Par exemple, ma cellule est initallement en bleu. Ensuite, si je coche le checkbox, ma cellule se met en orange.
    Ensuite, si je décoche le checkbox, la cellule se remet à la couleur précédente c'est à dire dans cet exemple en bleu.
    Mais si mets ensuite volontairement ma cellule non pas en bleu mais en vert. Si je coche le checkbox, la cellule
    se met toujours en orange, cependant si je redécoche le checkbox, la cellule se remettra en vert.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    et oui il te faut memoriser la couleur initiale
    une methode yper simple
    voici 2 checkbox qui traitent les cellule "A4" et "A5"
    comme j'ai deux checkbox (et pour plus!!! )dans cet exemple j'ai opté pour une sub generale appellée par les checkbox
    et comme visiblement tes cellules ne sont pas toute orange on considere la couleur initial volatile il faut donc la memoriser

    voila les evenement checkboxs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox1_Click()
    All_check_change CheckBox1, Range("A4"), vbBlue
    End Sub
    '
    Private Sub CheckBox2_Click()
    All_check_change CheckBox2, Range("A5"), vbRed
    End Sub
    et voila la sub general
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub All_check_change(check As MSForms.CheckBox, cel As Range, newcolor As Long)
    If check.Tag = "" Then check.Tag = cel.Interior.Color
    If check.Value Then cel.Interior.Color = newcolor Else cel.Interior.Color = check.Tag
    End Sub
    autrement dit j'apelle dans les evenements la sub All_check_change
    avec pour argument le checkbox ,la celules concerné et la couleur que je veux que la cellule ai quand le checkbox est à true

    et donc dans la sub generale
    je memorise dans le tag du checkbox designé par la variable "check" si il est vide !!! la couleur initiale de la cellule
    et enfin si c'est true je met la couleur injectée "newcolor" ou la couleur initiale récupérée dans le tag
    voila le fait de memoriser la couleur initial de la cellule dans le tag uniquement si le tag est vide la couleur initial est memorisé tant que le userform n'est pas unloadé
    demonstration
    Nom : demo2.gif
Affichages : 590
Taille : 107,7 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2018
    Messages : 116
    Par défaut
    Ok parfait merci Patrick 😊

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

Discussions similaires

  1. Comment revenir à la page précédente en cliquant sur un lien
    Par veevee dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2007, 19h29
  2. bloqué la possibilité de revenir sur la page précédente
    Par starr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/01/2007, 18h23
  3. ne pas pouvoir revenir sur une page en cliquant sur précédent
    Par sagopa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/11/2006, 01h10
  4. [FLASH 5]un bouton dans une image pour revenir sur une scene
    Par patato valdes dans le forum Flash
    Réponses: 7
    Dernier message: 28/04/2004, 20h21
  5. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48

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