Couleur d'une cellule active Excel?

Résolu
Bonjour!

J'aurai voulu savoir si il etait possible de changer la couleur d'une cellule active d'Excel.

Je souhaiterai, lorsque je clique sur une cellule quelconque que celle ci se colore en bleu (par exemple), si je clique sur une autre la cellule reprend sa couleur d'origine et la nouvelle se colore, ect....

Est ce que quelqu'un peu m'aider?

Merci a vous!

--
_________________________________________________
www.image-in13.com

18 réponses

Résumé de la discussion

La problématique porte sur la possibilité de changer dynamiquement la couleur de la cellule active dans Excel, afin que celle-ci devienne bleue lors du clic et retrouve sa couleur lors d'une autre sélection. Des solutions proposées reposent majoritairement sur une macro Worksheet_SelectionChange, qui mémorise la couleur précédente, applique la couleur désirée et rétablit l'ancienne couleur lorsque l'utilisateur sélectionne une autre cellule. Plusieurs réponses évoquent des variantes, notamment l'utilisation d'une couleur prédéfinie comme bleu (CodeColorIndex) et des ajustements pour éviter l'accumulation des couleurs, ainsi que des précautions liées à la protection du classeur. D'autres témoignent des problèmes lorsque des cellules colorées existent déjà ou lorsque le fichier est enregistré et rouvrant, mettant en évidence l'impact des états initiaux sur le comportement.

Bobot (l’IA à votre service)
  1. Contributeur
    bonjour

    Pour faire selon ton idée, essaie de copier cette macro dans ton classeur :

    Public old_color, old_sel
    Option Explicit

    Sub Worksheet_SelectionChange(ByVal sel As Range)
    If Not old_sel = "" Then Range(old_sel).Interior.ColorIndex = old_color
    old_sel = sel.Address
    old_color = sel.Interior.ColorIndex
    sel.Interior.ColorIndex = 41
    End Sub


    cela devrait répondre à ta demande.

    8
    1. comment fait-on pour copier cette macro dans le classeur? sous mac??
      0
  2. Contributeur
    Salut,

    Pour réaliser ce que tu veux, je ne vois pas sans passer par une macro.Ton classeur (ou tous tes classeurs si tu veux que ça s'applique tt le tps) comportera donc une macro.
    Est-ce ce que tu veux (si oui, dis-moi si tu as besoin d'un coup de main pour le code) ?

    A+
    0
    1. Je vais essayer mais je ne m'y connais pas en macro donc je vais surement avoir besoin de votre aide...

      Merci a vous pour vos reponses!

      Je vais tester!
      Désolé pour cette reponse tardive mais la notification par mail n'a pas fonctionné ou j'ai oublié de cocher la case! lol
      0
      1. Effectivement je ne vois pas comment faire.... oupssss

        Si quelqu'un pouvait m'expliquer la procedure ça serait cool!
        Merci.
        0
        1. Il n'y a vraiment personne pour m'aider?????
          0
          1. Contributeur
            salut Franky
            menu outils / macro / visual basic editor
            double clic sur feuil1 et sur la droite de l'écran une fenetre s'ouvre colle le texte indiqué plus haut et enregistre
            quand tu retournes dans ton fichier excel chaque fois que tu sélectionnes une cellule elle se colore en bleu
            -1
        2. Excellent!!!!!

          Merci Beaucoup!

          Un dernier truc si possible, quel est le code pour avoir la cellule rempli en rouge?

          Je vois que 41 est = au bleu mais le rouge????
          0
          1. Aie,

            Apres quelques test je remarque ceci:

            J'ai des cellules deja colorées, lorsque j'en selectionne une, celle ci change bien de couleur et lorsque je la deselectionne elle reprend bien sa couleur de base (verte par exemple).

            Par contre si je fait la meme operation mais cette fois ci en selectionnant une plage de cellules cela m'efface les couleurs de base... et lorsque je deselctionne la plage de cellule devient blanche (enfin fond>couleur automatique)

            Si je veux recolorer cette plage de cellules ou meme une cellule seule cela ne marche pas elle prend la couleur mais des que je deselectionne ça revient en "couleur automatique" (soit blanc)

            Quelqu'un saurait il rectifier le code pour eviter ces problemes?

            0
            1. Hello Franky4Doigts,

              Fais une petite modification dans le code : dans les 2 dernières lignes avant End Sub, remplace "sel" par "ActiveCell", ce qui donne :
              Sub Worksheet_SelectionChange(ByVal sel As Range)
              
                  If Not old_sel = "" Then Range(old_sel).Interior.ColorIndex = old_color
                  old_sel = sel.Address
                  old_color = ActiveCell.Interior.ColorIndex
                  ActiveCell.Interior.ColorIndex = 41
              
              End Sub


              Pour les couleurs :

              ' 3=rouge 4=vert 5=bleu 6=jaune 7=violet
              0
          2. Voici le code que j'ai mis:

            Public old_color, old_sel 
            Option Explicit 
            
            Sub Worksheet_SelectionChange(ByVal sel As Range)
            
                If Not old_sel = "" Then Range(old_sel).Interior.ColorIndex = old_color
                old_sel = sel.Address
                old_color = ActiveCell.Interior.ColorIndex
                ActiveCell.Interior.ColorIndex = 41
            
            End Sub


            Or les problemes enoncés ci dessus persistent encore.

            A savoir:
            La selection d'un plage de cellules colorées enleve la couleur de la cellule lors de la deselection.
            +
            Impossibilité de remettre de la couleur par la suite.

            Que faire?

            0
            1. Plus de volontaire pour m'aider?
              0
              1. Ok, Franky4Doigts, je commence à voir ton PB. D'après ce que tu disais au départ, il s'agissait d'une cellule.
                Si je comprends bien, c'est une plage toute entière (éventuellement bigarrée avec plusieurs couleurs) que tu veux restituer dans son état d'origine en désélectionnant.
                Ça change tout !
                Donc à+ pour le moment.
                Armojax.
                0
                1. Salut,

                  Oui c'est ça, en fait j'ai des cellules comportant plusieurs couleurs.

                  Les cellules sont liées entre elles (cad quand je clique sur A1 cela me renvoye sur C5 par exemple) or vue qu'elles sont deja colorées lors du renvoye (sur C5 dans mon exemple) il faut chercher la nouvelle cellule selectionnée.
                  Je souhaite donc changer la couleur de la cellule active pour faire voir clairement et rapidement les cellules et par consequent que tout redevienne comme a l'origine apres dans tout les cas (selection d'une cellule ou d'une plage).

                  J'espere que je suis pas trop confu dans mes propos

                  Merci de votre aide!
                  0
                  1. Plus personne ne peut m'aider.... svp.

                    J'aimerai vraiment arriver a faire ca....
                    1
                    1. je vient de faire un tableau récap pour calcul de tva déclaration ca3

                      tva avril

                      Encaissements

                      date client TTC encaissé facture origine HT Montant TTC retenu Base ht
                      5.5 19.6 5.5 19.6 5.5 19.6
                      20 portal 400 919.73 0 400 0 334.45
                      20 Geoffroy 149.64 125.12 0 149.64 0 125.12
                      20 Meridor 2914.65 1437 0 2914.65 0 2437
                      30 Julien 3294.6 3420 574 2821.11 / 473.49 2674.04/ 395.89
                      30 Rideau 297 247.43 0 297 0 248.33

                      Total 2674.04 3540.79
                      TVA 147.07 693.99
                      Total TVA 841

                      Achat Immobilisations
                      Date Fournisseur TTC facturé TVA facturée

                      total TVA Immobilisation 0

                      Achat de biens et services
                      Date Fournisseur TTC facturé TVA facturée
                      12 quincaillerie moderne 239.2 39.2
                      16 imite ancien 1674.4 274.4
                      22 comptoir 514.88 84.38
                      30 ebene 1065.89 174.68 Total tva B/S 572.66

                      Décaissement fournisseurs
                      date fournisseur TTC facturé TVA facturée TTC décaissée TVA décaissée
                      10 SCI des bureaux 1495 245 1495 245
                      30 Calberson 107.64 17.64 107.64 17.64

                      Total décaissement 262.64
                      Total à déduire B et S 835

                      Crédit tva reporté 1200

                      tva a payer 0
                      credit de tva 119
                      le tableau calcul tous seul si je suis en crédit de tva ou si j ai de la tva a payer maintenant je souhaiterais savoir
                      1) comment je peux faire pour que mon tableau m'affiche le total de tva encaissement en vert si il est inferieur au décaissement et en rouge si il est sup
                      2) d'afficher automatiquement si c'est tva a payer ou credit de tva a reporter au mois suivant et qu il le fasse automatiquement)
                      pour finir 3) une macro ca se creer comment et quelle sont les etapes pour mettre les cellules de couleurs automatiquement suivant les resultats calculés dans ce meme tableau

                      merci pour votre aide c'est ma premiere macro alors plus je lis plus je comprend plus rien

                      a++
                      -1
                      1. Contributeur
                        bonjour

                        1) comment je peux faire pour que mon tableau m'affiche le total de tva encaissement en vert si il est inferieur au décaissement et en rouge si il est sup

                        Pour faire cela, le plus simple :
                        choisir "le total de tva encaissement" puis le menu format puis mise en forme conditionnelle
                        dans la fenêtre choisir à gauche "la formule est" et à droite on met la formule :
                        =C1<D1
                        avec C1 "le total de tva encaissement" et D1 le décaissement

                        et l'on choisis le vert dans la mise en forme, fond ou couleur de police.
                        il suffit de faire "ajouter" pour mettre en rouge en remplaçant < par >

                        2) d'afficher automatiquement si c'est tva a payer ou credit de tva a reporter au mois suivant et qu il le fasse automatiquement)
                        tu crées une cellule "à payer" avec la formle
                        =SI(C1>D1;C1-D1;0)
                        avec C1 "le total de tva encaissement" et D1 le décaissement

                        puis tu crées une cellule "report" avec la formle
                        =SI(C1<D1;D1-C1;0)


                        3) une macro ca se creer comment et quelle sont les etapes pour mettre les cellules de couleurs
                        automatiquement suivant les resultats calculés dans ce meme tableau

                        Une macro c'est de la programmation et dans ton cas je n'ai pas l'impression que tu en ai la nécessité.
                        0
                        1. je debute dans la déclaration de tva
                          je suis a la recherche d'un tableau, quasi identique au votre
                          Pouvez vous me faire parvenir le modele de tableau?
                          0
                          1. pouvez vous m'aider sur le excel je ne comprend rien a ce machin!
                            merci avous
                            -1
                            1. J'ai réussi à colorer mes fenêtres actives mais lorsque j'enregistre mon dossier en fin de journée la cellule active colorée s'enregistre colorée et le lendemain lorsque j'ouvre mon dossier active ou pas cette cellule reste colorée ........à la longue mon tableau sera tout bleu...

                              merci de m'aider

                              Jean
                              0
                              1. Bonsoir,

                                Le code fonctionne très bien,merci a gbinforme mais des que je verrouille certaine cellules et bien j'ai ce message d'erreur,suis sous 2007

                                Erreur d'exécution 1004
                                Erreur définie par l'application ou par l'objet.

                                Si qqu'un peut m'aider svp.
                                0
                                1. Contributeur
                                  Bonjour,

                                  Dès que tu verrouilles, tu ne peux accéder aux cellules même par macro sauf à déverrouiller en début de code puis reverrouiller en fin :
                                  Unprotect "mot_depasse_éventuel"

                                  ton code, puis

                                  Protect "mot_depasse_éventuel"
                                  0
                                2. Bonjour,

                                  Je n'ai pas tout compris car suis novices mais ce n'est pas grave,merci quand meme.
                                  0
                                3. Contributeur
                                  Si tu as pris le code fourni, cela donne :
                                  Sub Worksheet_SelectionChange(ByVal sel As Range)
                                  If Not old_sel = "" Then
                                  Unprotect "mot_depasse_éventuel"
                                  Range(old_sel).Interior.ColorIndex = old_color
                                  old_sel = sel.Address
                                  old_color = sel.Interior.ColorIndex
                                  sel.Interior.ColorIndex = 41
                                  Protect "mot_depasse_éventuel"
                                  End Sub
                                  "mot_depasse_éventuel" sera remplacé par ton mot de passe entre guillemets si tu en as un, sinon tu ne mets rien.
                                  0
                                4. Alors j'ai essayé avec le premier code du post et cela fonctionne à merveille :

                                  Public old_color, old_sel
                                  Option Explicit

                                  Sub Worksheet_SelectionChange(ByVal sel As Range)
                                  Unprotect "mot_depasse_éventuel"
                                  If Not old_sel = "" Then Range(old_sel).Interior.ColorIndex = old_color
                                  old_sel = sel.Address
                                  old_color = sel.Interior.ColorIndex
                                  sel.Interior.ColorIndex = 41
                                  Protect "mot_depasse_éventuel"
                                  End Sub

                                  Un grand merci pour ton aide ,par contre quand je fais entrer pour me déplacer de cellule en cellule déverrouiller et bien il ne passe pas sur toutes les cellules ?
                                  0
                                5. Enfin si mais il repasse deux fois sur les memes ?
                                  0