Effectuer un programme automatiquement 2

Résolu
Bonjour tous le monde,

Voila un programme qui a un problème.
La cellule A9 de la feuille 1 est égale à la cellule A10 de la feuille 2
Quand je modifie directement la cellule A9 de la feuille 1 le programme ci-dessous s'applique correctement. Mais lorsque je modifie la cellule A10 de la feuille 2 le programme ne marche pas. Pourquoi?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Sheets("feuil1").Range("A9")) Is Nothing Then

If target = 1 Then

Range("A9:d12").Interior.ColorIndex = 0
Range("a9:a12").Interior.ColorIndex = 3

ElseIf target = 2 Then

Range("A9:d12").Interior.ColorIndex = 0
Range("a9:b12").Interior.ColorIndex = 3

ElseIf target = 3 Then

Range("A9:d12").Interior.ColorIndex = 0
Range("a9:c12").Interior.ColorIndex = 3

ElseIf target = 4 Then

Range("A9:d12").Interior.ColorIndex = 0
Range("a9:d12").Interior.ColorIndex = 3

end if

End If
End Sub

28 réponses

Résumé de la discussion

Le problème est que le code VBA ne réagit que lorsque la cellule A9 de la feuille 1 est modifiée, alors que A10 de la feuille 2 peut être lié à A9 sans déclencher l’événement. La logique actuelle ne surveille que Target dans A9 de Feuil1 et ne capte pas les modifications sur Feuil2, ce qui explique l’écart entre les deux cas. Des réponses proposées dans la discussion recommandent d’utiliser Workbook_SheetChange ou d’appliquer le même code sur chaque feuille, ou de passer par une routine commune appelée par toutes les feuilles. En dernier lieu, plusieurs échanges suggèrent d’éviter les dépendances directes entre feuilles et de normaliser les paramètres via une procédure centrale pour gérer les couleurs.

Bobot (l’IA à votre service)
  1. Bonjour
    j'ai excel 2010!

    Mais c'est bon avec la derniere feuille excel que tu as faite je devrais m'en sortir merci!! et je prendrais des cours un jour si j'ai le temps

    Merci beaucoup d'avoir pris le temps pour repondre à mes question.

    A+
    1. Re,

      Vous ne donnez pas quel excel vous utilisez, donc pour le fichier suivant,

      https://www.cjoint.com/c/CGsjvNsZU2z

      si excel 2007 et plus: pas de probleme

      si anterieur a 2007: mfc ne marchra pas

      supprimez la mfc si presente dans les regles

      allez dans le VBA de la feuille Recap et enlevez la ligne Exit sub indiquee, la mise a jour des couleurs ce fera a chaque activation de l'onglet Recap

      A+
      1. Bonjour,

        la macro 1 a servie a creer les onglets semaine S01 a S53.

        Pour les couleurs, je regarde avec des MFC sur cellules avec formule.

        A+
        1. Re

          Tout ce qui est dans la macro 2 j'ai compris a quoi sa sert mais la macro 1 je ne vois pas son utilité!
          1. Bonjour,

            Beau programme!! (je comprend pas grand chose pour l'instant, je vais m'y pencher d'un peu plus près!)

            Sinon

            Dans la feuille Recap tu as la colone C qui represente les depenses.

            Quand la cellule C2 est superieur a 0 je voudrais que les cellules A2, B2, C2, D2 se mettent en couleur

            Quand la cellule C3 est superieur a 0 je voudrais que les cellules A3, B3, C3, D3 se mettent en couleur

            ...

            Quand la cellule C54 est superieur a 0 je voudrais que les cellules A54, B54, C54, D54 se mettent en couleur.

            Merci
            1. Re,

              un exemple sans la couleur, parce qu'il y un detail qui colle pas avec votre description de la feuille recap:

              j'aimerai que lorsque la valeur de la cellule depense de la semaine 47 est superieur a 0, toutes les cellules correspondante se mettent en couleur.
              Et ceci pour toutes les semaines.


              https://www.cjoint.com/c/CGroFelqatk

              A+
              1. Bonjour,

                Avec votre explication, nous comprenons nettement mieux votre besoin.
                Le principe sera simple:

                onglet recapitulatif: liaison cellules avec les autres onglets et mise en forme conditionnelles

                Quel excel avez-vous ???

                Je vous prepare un fichier pour fin apres-midi, si cela vous convient.

                A+
                1. bonjour,
                  Alors voila : Je tient des comptes toutes les semaines soit 52 feuilles

                  j'ai une feuille qui fait la synthèse de toutes les semaines

                  donc la semaine 1 : rentré : ... ; depense : ....
                  semaine 2 : rentré : ... ; depense : ....
                  semaine 3 : rentré : ... ; depense : ....
                  ...
                  semaine 52 : rentré : ... ; depense : ....

                  Sur la feuille synthèse toutes les cellules dépense et rentré sont rattachées à leur feuilles respective.

                  Voila comment sa se presente :
                  Semaine 47
                  22/07/2013

                  Dépense
                  0
                  Rentré
                  0
                  detail (detail est un lien hypertexte permettant d'acceder a la feuille 47)

                  j'aimerai que lorsque la valeur de la cellule depense de la semaine 47 est superieur a 0, toutes les cellules correspondante se mettent en couleur.
                  Et ceci pour toutes les semaines.

                  Voila j'espere que c'est clair :S

                  Merci bien.
                  1. Bonjour,

                    Et j'ai aucune connaissance en programmation VBA excell! je sais que bidouiller. Oui, vous allez exprimer votre besoin clairement sans faire de references a de la programmation. Vous enumerez le nombre d'onglets, les cellules de saisies et les actions en fonction du contenu des ces cellules, etc.... Avec votre demande, je vous ferai un exemple de programme.

                    A+
                    1. si formule dans A1 feuil1 (=feuil2!A10):
                      Excel met a jour la cellule mais ne declanche pas l'evenement worksheet_change car la feuille n'est pas active.

                      Oui voila c'est exactement sa mon problème!!
                      En passant par le programme des cellules qui clignotent j'arrive à declencher l'évenement worrksheet_change mais j'aimerai un programme mieux adapté!!!

                      Et j'ai aucune connaissance en programmation VBA excell! je sais que bidouiller.
                      1. Bonjour,

                        La où je voudrais l'appliquer, il y a 52 feuilles qui modifient 1 cellule et
                        la cellule A1 feuil1 est egale à =feuil2!A10 et
                        le programme marche dans la feuille 1 ca ne peut pas aller !!!!!

                        si formule dans A1 feuil1 (=feuil2!A10):
                        Excel met a jour la cellule mais ne declanche pas l'evenement worksheet_change car la feuille n'est pas active.

                        Ou en etes-vous dans la programmation VBA excel ???????
                        1. Nan mais sa c'est pas grave!
                          la cellule A1 feuil1 est egale à =feuil2!A10
                          change la valeur A10 de la feuille 2 et le programme marche dans la feuille 1

                          Mais comme c'est du bidouillage j'ai utilisé un autre programme où la des cellule clignotent (pour toujours actualiser la feuille 1) c'est pourquoi il me faudrait un programme mieux adapté!
                          1. Re,

                            pour qu'une ou plusieurs cellules clignotent, il faut un changement de couleur du contenu ou du contenant. Dans votre code du module CellulesVidesClignotent, il n'y a pas de changement de couleur et pourquoi une boucle pour une cellule

                            For Each a In Sheets("feuil1").Range("a9") ?????

                            Le .Cells ----> pas compris !!!!
                            1. Contributeur
                              Pour ma part, y a rien qui "clignote" et rien qui fonctionne ???
                              Mais bon, si t'a trouvés tant mieux.
                              Et vu... QUE TU NE SAIS PAS EXPLIQUER CE QUE TU VEUX,.
                              abandon du suivi.
                              @++
                              Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
                              Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
                              1. Bonjour,

                                il y a 52 feuilles qui modifient 1 cellule Vous serez bien obliger de faire un minimun de code par feuille avec l'evenement change et un passage de un ou plusieurs parametres a un module unique qui changera vos couleurs. De plus, dans votre logique, la cellule A9 de feuille1 ne pourra pas etre egale a la cellule A10 de feuille 12 et A10 de feuille24, vous ne pouvez pas mettre de formule dans cette cellule.
                                1. Contributeur
                                  Le programme marche mais pas quand tu modifie la cellule A10 de la feuille 2 donc c'est pas encore sa... (Merci pour ton aide et ta patience!!)
                                  ça commence à...
                                  C'EST QUOI EXACTEMENT QUE TU VEUX ?????????????????????????
                                  1. Bonjour l'Ermite
                                    Le programme marche mais pas quand tu modifie la cellule A10 de la feuille 2 donc c'est pas encore sa... (Merci pour ton aide et ta patience!!)

                                    Bonjour f894009
                                    Oui je pourrais mettre le programme dans la feuille 2 mais la c'est un exemple.
                                    La où je voudrais l'appliquer, il y a 52 feuilles qui modifient 1 cellule donc soit je trouve un programme qui satisfait mes désirs, soit je 'applique ta solution et je dois mettre un programme dans les 52 feuilles!
                                    1. Bonjour a vous deux,

                                      Lixil:
                                      pourquoi voulez-vous passez par le changement de valeur de la cellule Feuil1!A9 pour executer votre code ??? Si vous mettez votre code dans le VBA de la feuil2 sur changement de A10 en ajoutant que ce sont des cellules de la feul1 que vous voulez changer la couleur, ne serait-ce pas mieux ???
                                      1. Contributeur
                                        Je modifie la cellule A1 feuil1 entre 1 et 4. OK
                                        En tout cas, pas sur ton classeur (y me semblais que....) bref.
                                        A voir
                                        Mais je suis pas sûr que c'est ce que tu veux...
                                        A+

                                        • 1
                                        • 2