Changement de couleurs

Dans le feuille "données", Si je change le texte d'un élément de la plage B7:B15, les répercussions se font bien dans les feuilles correspondantes mais la cellule d'en dessous devient blanche.

Manifestement cela se passe durant la procédure appelée, mais je ne comprends pas pourquoi.

Merci

Bonjour

Tu écris :

...mais la cellule d'en dessous devient blanche.

Si tu veux dire la cellule d'à coté, alors, ajoute les 2 instructions surlignés ci-après et cela devrait aller mieux :

'Cet événement se déclenche à chaque modification du contenu d'une cellule de cette feuille
Private Sub WorkSheet_Change(ByVal Target As Range)

Dim Cellule_Source As Range
Dim Plage_Source As Range
Dim Plage_Cible As Range
Dim classe As Range
Application.EnableEvents = False
...

...
Application.EnableEvents = True
End Sub

Bye !

Hello

Quand je tapes sur Entrée, je vais sur la cellule d'en dessous, (pas celle de droite). Mais ce n'est pas grave.

Effectivement, cela règle mon problème. Je crois avoir compris le phénomène. Par exemple, dans ma feuille 5A, dans le code, il est dit que si je sélectionne une cellule d'une zone, le commentaire s'efface et le fond de cellule aussi. Mais pourquoi cela se répercute dans la feuille données ?

Si tu peux m'expliquer, ce serait cool, j'aime bien comprendre ...

En tout cas , merci. Je mets le sujet en résolu.

Bonjour

Tu écris :

dans ma feuille 5A, dans le code, il est dit que si je sélectionne une cellule d'une zone, le commentaire s'efface et le fond de cellule aussi. Mais pourquoi cela se répercute dans la feuille données ?

Quand la macro du module 2 entre en action pour remplacer dans toutes les feuilles le code qu’on a modifié, il rencontre cette instruction qui lui permet de faire ce travail :

Cellule_Cible.Value = Cellule_Source.Value

A ce moment-là, la cellule cible est sur l'une des feuilles que la macro passe en revue. Or, en exécutant cette instruction, elle modifie une cellule de cette feuille. Donc elle déclenche à son tour une autre macro liée, elle, à cette feuille.

Et si on regarde ce que fait cette macro on s’aperçoit qu’elle efface le commentaire et le fond de cellule active.

Mais la cellule active n’est pas celle de la feuille où s’est opéré le changement de code. Car la feuille active n'a pas changé. C'est toujour la feuille ‘Données’. Et la cellule active est celle qui a été sélectionnée après validation de la cellule où le code a été modifié et qui a déclenché la macro initiale : cellule d’à coté pour moi et de dessous pour toi.

OK ?

Bye !

Ok, je comprends mieux ..

Pour ne pas avoir à rajouter tout le temps les deux phrases que tu me proposes (et que je risque d'oublier), est ce que je n'aurais pas intérêt à modifier le code :

Dim Plage_Cible As Range

Set Plage_Cible = ActiveCell

ActiveCell.ClearComments

Selection.Interior.ColorIndex = xlColorIndexNone

End sub

Du style :

Target.ClearComments

Target.Interior.ColorIndex = xlColorIndexNone

Merci

Tu écris :

Pour ne pas avoir à rajouter tout le temps les deux phrases que tu me proposes (et que je risque d'oublier), est ce que je n'aurais pas intérêt à modifier le code :

Dim Plage_Cible As Range
Set Plage_Cible = ActiveCell 
ActiveCell.ClearComments 
Selection.Interior.ColorIndex = xlColorIndexNone 
End sub

Du style : 
Target.ClearComments 
Target.Interior.ColorIndex = xlColorIndexNone

Tu peux.

C’est même ce qu’il aurait dû y avoir puisqu’on est dans une macro événementielle.

Mais je te conseille de laisser et de retenir les deux lignes de code que je t’ai données. La première désactive le déclenchement de ce type de macro. Lorsque ta macro est lancée, tu n’as pas besoin que se déclenchent d’autres macro auxquelles tu n’auras pas pensé et qui risquent de provoquer des bugs.

La deuxième qu’on met à la fin réactive les macros événementielles et il ne faut surtout pas l’oublier si tu as mis la première, sinon, plus aucune macro ne se déclencherait automatiquement.

Bye !

Merci pour les deux conseils.

Rechercher des sujets similaires à "changement couleurs"