Private Sub Worksheet_Change(ByVal Target As Range)
Call Remplit
End Sub
Je veux que la macro Remplit s'exécute lors d'un changement de couleur dans une cellule ou une entrée.
Lorsque d'un essai précédent, il y avait une boucle sans fin dont il a fallu que j'arrête le tout.
Bonjour.
Je ne vois pas d'autre solution qu'avec une boucle lancée dans un Sub Worksheet_SelectionChange qui vérifie en permanence si la Target.Interior.Color n'a pas changé …
Le dispositif existe dans mon CouleurCls.xlsm pour la colonne "Échantillon" des feuilles d'études.
N'oubliez pas de mettre un DoEvents dans la boucle pour qu'elle n'empêche pas Excel de travailler.
Normal.
Quand on modifie une valeur on exécute Worksheet_Change qui lance Remplit.
Dans Remplit on écrit en C9.
Comme on écrit dans la feuille on exécute Worksheet_Change qui lance Remplit.
Dans Remplit on écrit en C9.
...
Ca peux durer longtemps, c'est ce qu'on appelle de la ré entrance.
Pour pallier au souci il suffit d'invalider les events avant d'écrire dans la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call Remplit
Application.EnableEvents = True
End Sub
Normal.
Quand on modifie une valeur on exécute Worksheet_Change qui lance Remplit.
Dans Remplit on écrit en C9.
Comme on écrit dans la feuille on exécute Worksheet_Change qui lance Remplit.
Dans Remplit on écrit en C9.
...
Ca peux durer longtemps, c'est ce qu'on appelle de la ré entrance.
Pour pallier au souci il suffit d'invalider les events avant d'écrire dans la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call Remplit
Application.EnableEvents = True
End Sub
A noter que cette macro n'agira pas sur un changement de couleur d'une cellule, il faut un Enter pour l'activer.
Cette correction fonctionne à merveille. Question
Comment rendre exécutable un changement de couleur de fond de cellule par contre... si c'est possible?
Bonjour.
Je ne vois pas d'autre solution qu'avec une boucle lancée dans un Sub Worksheet_SelectionChange qui vérifie en permanence si la Target.Interior.Color n'a pas changé …
Le dispositif existe dans mon CouleurCls.xlsm pour la colonne "Échantillon" des feuilles d'études.
N'oubliez pas de mettre un DoEvents dans la boucle pour qu'elle n'empêche pas Excel de travailler.
Bonjour.
Je ne vois pas d'autre solution qu'avec une boucle lancée dans un Sub Worksheet_SelectionChange qui vérifie en permanence si la Target.Interior.Color n'a pas changé …
Le dispositif existe dans mon CouleurCls.xlsm pour la colonne "Échantillon" des feuilles d'études.
N'oubliez pas de mettre un DoEvents dans la boucle pour qu'elle n'empêche pas Excel de travailler.