OVH Cloud OVH Cloud

Exécuter une macro

6 réponses
Avatar
daniel
Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel

6 réponses

Avatar
anonymousA
Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel


le changement de couleur d'une cellule n'est pas percu comme un
evenement. ceci dit si ta cellule chnage de couleur est ce manuel ou
suite à un traitement automatique?
Si c'est manuel tu es marron sauf si le changement manuel s'accompagne
ensuite d'un chnagement de selection de cellule auquel cas tu peux gerer
par worksheet_selectionChange.
Si c'est automatique, tu gères dans ton processus une surveillance de al
couleur d'une celule donnée.
Si c'est suite à un calcul, regarde du côté des évenements de
worksheet_Calculate ou worksheet_Change.

Bref, tu vois y'a quand mêm moyen de ruser. A toi de voir ce qui te
convient le mieux.

A+

Avatar
daniel
Petite précision à ma question.
Le changement de couleur de ma cellule se fait avec une mise en forme
conditionnelle.



Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel


Avatar
anonymousA
Petite précision à ma question.
Le changement de couleur de ma cellule se fait avec une mise en forme
conditionnelle.




Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel
d'accord, mais quelle est le déclencheur de ta MEFC. Il ya quelque chose


qui change ailleurs ?

A+


Avatar
daniel
dans ma cellule Q10 j'ai la formule suivante :
=SI(N10="";"";SI(L10="";1-O10;1/L10*(L10-M10)-O10)) et dans ma MEFC j'ai :la
valeur de la la cellule est inférieur à 10% donc je mets ma cellule en rouge.
J'ai dans la cellule Q11 la formule
=SI(N11="";"";SI(L11="";1-O11;1/L11*(L11-M11)-O11)) et dans ma MEFC j'ai :la
valeur de la la cellule est inférieur à 6% donc je mets ma cellule en rouge
et ainsi de suite et pour chaque cellule et une condition différente de ma
MEFC. C'est pourquoi, je souhaite executer une macro sur le contenu de la
couleur rouge.

A+


Petite précision à ma question.
Le changement de couleur de ma cellule se fait avec une mise en forme
conditionnelle.




Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel
d'accord, mais quelle est le déclencheur de ta MEFC. Il ya quelque chose


qui change ailleurs ?

A+





Avatar
daniel
Un complément d'information. J'ai écris cette macro. Mais le problème est
lors d'un changement de couleur de la cellule par une MEFC il ne reconnait
pas l'instruction Interior.ColorIndex

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cellule As Range
Dim compteur As Long

For Each cellule In Range("C2:C9")
If cellule.Interior.ColorIndex = 3 Then
compteur = compteur + 1
End If
Next

[A1] = compteur

End Sub



Petite précision à ma question.
Le changement de couleur de ma cellule se fait avec une mise en forme
conditionnelle.




Bonjour,

Lorsque qu'une cellule change de couleur est-il possible d'exécuter une
macro ?

Merci d'avance pour votre aide et explication.

Daniel
d'accord, mais quelle est le déclencheur de ta MEFC. Il ya quelque chose


qui change ailleurs ?

A+





Avatar
Rai
Bonjour Daniel,

Il y a bien une solution.
Celle que je te propose fonctionne pour les cas où :
- ta MEFC est basée sur 1 (et une seule) condition
- cette condition s'appuie sur des chiffres inscrits
dans la MEFC et non des formules
- ne gère pas les conditions "est compris entre ",
"n'est pas compris"

Bien entendu, il y a moyen de prévoir ces cas.

On ne peut pas tester si un fond rouge est octroyé par une MEFC à une
cellule.
Par contre, on peut regarder si une cellule a une MEFC, récupérer
l'opérateur et la valeur de comparaison.
Ensuite, on peut tester si la cellule correspond à la condition de la
MEFC, et effectuer un traitement en conséquence.

La macro est écrite pour tester la cellule active,
il te suffit de remplacer Set Cible = ActiveCell par tout autre objet
Range (par exemple passer un paramètre à la macro) pour l'adapter à tes
besoins.

Mamacro représente la subroutine que tu veux utiliser pour le cas où ta
cellule a un fond rouge.


Sub YaMEFC()
Dim Cible As Range
Set Cible = ActiveCell

MEFC! = Cible.FormatConditions.Count
If MEFC > 0 Then
compare = Val(Cible.FormatConditions(1).Formula1)
Operateur! = Cible.FormatConditions(1).Operator
Select Case Operateur
Case xlGreater '>
If ActiveCell > compare Then Mamacro
Case xlGreaterEqual '> If ActiveCell >= compare Then Mamacro
Case xlEqual ' If ActiveCell = compare Then Mamacro
Case xlLessEqual '< If ActiveCell <= compare Then Mamacro
Case xlLess '<
If ActiveCell < compare Then Mamacro
End Select
End If
End Sub


Bonne adaptation,

Rai


dans ma cellule Q10 j'ai la formule suivante :
=SI(N10="";"";SI(L10="";1-O10;1/L10*(L10-M10)-O10)) et dans ma MEFC j'ai :la
valeur de la la cellule est inférieur à 10% donc je mets ma cellule en rouge.
J'ai dans la cellule Q11 la formule
=SI(N11="";"";SI(L11="";1-O11;1/L11*(L11-M11)-O11)) et dans ma MEFC j'ai :la
valeur de la la cellule est inférieur à 6% donc je mets ma cellule en rouge
et ainsi de suite et pour chaque cellule et une condition différente de ma
MEFC. C'est pourquoi, je souhaite executer une macro sur le contenu de la
couleur rouge.

A+