VBA Mise en Forme Conditionnelle
Résolu/Fermé
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
-
10 févr. 2010 à 10:56
herod1983 Messages postés 193 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 3 août 2012 - 25 févr. 2010 à 03:24
herod1983 Messages postés 193 Date d'inscription jeudi 2 octobre 2008 Statut Membre Dernière intervention 3 août 2012 - 25 févr. 2010 à 03:24
A voir également:
- Vba mise en forme conditionnelle couleur
- Mise en forme conditionnelle excel - Guide
- Dans cette présentation, sarah avait encadré directement le titre de certaines diapositives avant d'automatiser cette mise en forme pour tout le document. sur quelles diapositives avait-elle encadré directement le titre ? ✓ - Forum Bureautique
- Mise en forme conditionnelle date dépassée ✓ - Forum Bureautique
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Mise en forme conditionnelle si cellule contient un mot ✓ - Forum Excel
9 réponses
Je pense que tu n'as pas étudié le code de la fonction transmise ci-dessus.
En effet, je l'ai adapté pour obtenir comme résultat si la condition est vrai; il refait le calcul permettant d'appliquer le format conditionnel
Son utilisation sera donc la suivante :
La pratique étant beaucoup plus explicite que des écrits, voici un exemple d'utilisation de la fonction fctMFC dans les circonstances de ta demande
En effet, je l'ai adapté pour obtenir comme résultat si la condition est vrai; il refait le calcul permettant d'appliquer le format conditionnel
Son utilisation sera donc la suivante :
If fctMFC(ThisWorkbook.Worksheets(1).Cells(I, 1)) = True Then _ ThisWorkbook.Worksheets(1).Cells(I, 1).Copy ThisWorkbook.Worksheets(2).Cells(J, 1)
La pratique étant beaucoup plus explicite que des écrits, voici un exemple d'utilisation de la fonction fctMFC dans les circonstances de ta demande
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 365
10 févr. 2010 à 11:00
10 févr. 2010 à 11:00
Essaye plutôt avec la couleur choisie
If ActiveCell.Interior.ColorIndex = 3 then ...
If ActiveCell.Interior.ColorIndex = 3 then ...
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
25 févr. 2010 à 03:24
25 févr. 2010 à 03:24
Sa fonctionne nickel, merci, super coup de pouce, effectivement je n'avais pas étudié le code comme il le fallait.
Merci encore a toi
a+
Merci encore a toi
a+
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
10 févr. 2010 à 11:07
10 févr. 2010 à 11:07
Salut
Merci d'abord pour ton aide, c'est une bonne idée, mais le soucis c'est que la cellule n'est pas vraiment en rouge, si tu fais clique droit, format cellule dans l'onglet motif il n'y a aucune couleur, la couleur est ajoutée par la mise en forme conditionnelle.
Merci d'abord pour ton aide, c'est une bonne idée, mais le soucis c'est que la cellule n'est pas vraiment en rouge, si tu fais clique droit, format cellule dans l'onglet motif il n'y a aucune couleur, la couleur est ajoutée par la mise en forme conditionnelle.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 365
10 févr. 2010 à 11:15
10 févr. 2010 à 11:15
If ActiveCell.FormatConditions(1).Interior.ColorIndex = 3 then ...
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
10 févr. 2010 à 21:02
10 févr. 2010 à 21:02
salut Farfadet88,
désolé j'ai déjà essayé cette façon, ça ne fonctionne pas, car le problème c'est que de cette manière, j'aurais toute les cellules dont la forme est de devenir a fond rouge même quand il n'y a pas d'alarme ou de condition Vrai.
Il me faut que celle qui sont en condition Vrai.
désolé j'ai déjà essayé cette façon, ça ne fonctionne pas, car le problème c'est que de cette manière, j'aurais toute les cellules dont la forme est de devenir a fond rouge même quand il n'y a pas d'alarme ou de condition Vrai.
Il me faut que celle qui sont en condition Vrai.
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
13 févr. 2010 à 13:27
13 févr. 2010 à 13:27
Personne n'a une autre idée ???
Bonjour,
L'option la plus rapide est de passer sur Office 2007 car il existe un filtre sur la couleur de la cellule ;)
Mais la curiosité apporte souvent des solutions; bien qu'il semblerait ne pas avoir de propriété pour vérifier si un format conditionnel est actif, il est possible de développer une fonction simulant le test du format conditionnel
On peut pousser la fonction jusqu'au point de remonter l'information de format souhaitée à partir d'une constante placée en variable d'appel mais c'est une autre histoire ;)
Source : Adaptation de la Fonction qui retourne la couleur active d'une MFC
L'option la plus rapide est de passer sur Office 2007 car il existe un filtre sur la couleur de la cellule ;)
Mais la curiosité apporte souvent des solutions; bien qu'il semblerait ne pas avoir de propriété pour vérifier si un format conditionnel est actif, il est possible de développer une fonction simulant le test du format conditionnel
Public Function fctMFC(rng As Range) As Boolean Dim varFC As Variant fctMFC = False ' Intialisation de la fonction For Each varFC In rng.FormatConditions If varFC.Interior.ColorIndex = 3 Then ' La couleur de fond de la cellule de la condition est rouge Select Case varFC.Type Case xlCellValue ' La valeur de la cellule est Select Case varFC.Operator Case xlEqual ' égale à fctMFC = rng = Evaluate(varFC.Formula1) Case xlNotEqual ' différente de fctMFC = rng <> Evaluate(varFC.Formula1) Case xlGreater ' supérieur à fctMFC = rng > Evaluate(varFC.Formula1) Case xlGreaterEqual ' supérieure ou égale à fctMFC = rng >= Evaluate(varFC.Formula1) Case xlLess ' inférieure à fctMFC = rng < Evaluate(varFC.Formula1) Case xlLessEqual ' inférieur ou égale à fctMFC = rng <= Evaluate(varFC.Formula1) Case xlNotBetween ' non comprise entre fctMFC = (rng < Evaluate(varFC.Formula1) Or rng > Evaluate(varFC.Formula2)) Case xlBetween ' comprise entre fctMFC = (rng >= Evaluate(varFC.Formula1)) And (rng <= Evaluate(varFC.Formula2)) End Select Case xlExpression ' La formule est fctMFC = Evaluate(varFC.Formula1) End Select End If Next End Function
On peut pousser la fonction jusqu'au point de remonter l'information de format souhaitée à partir d'une constante placée en variable d'appel mais c'est une autre histoire ;)
Source : Adaptation de la Fonction qui retourne la couleur active d'une MFC
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
18 févr. 2010 à 11:08
18 févr. 2010 à 11:08
Bonjour et merci d'avance pour votre aide,
J'ai déjà essayé cette fonction, je suis d'accord, on peut savoir la couleur ou divers format de la Mise en Forme Conditionnelle se trouvant dans une cellule donnée.
Par-contre, exemple je mets une MFC dans la cellule A1 qui dit, si la valeur de cette cellule est supérieur à 10 alors (donc si condition VRAI) l'intérieur de la cellule devient rouge.
Cette même cellule, quand la condition est VRAI, (Intérieur Rouge) n'est pas différente des autres, car si on clique droit sur format de cellule "MOTIF", là on se rend compte que l'intérieur de la cellule n'est pas rouge.
Donc tous portent à croire que c'est la mise en forme conditionnel qui gère ce format et c'est pour cela qu'on ne peut pas faire de boucle de recherche sur une cellule à fond rouge ou tout autre format.
Voila mon problème exactement.
Maintenant cette fonction me permet de dire, ok la cellule A1 a une MFC et devient en rouge, elle a sa comme format et comme bordure etc...
Mais la question la plus importante, on ne peut pas différencier d'une cellule qui à Condition VRAI (donc qui est ACTIVE dans l'exemple dépasse la valeur 10) d'une autre.
Je prend une cellule A1 et A2 qui ont la même MFC, j'en met une à valeur 11 l'autre à 2, l'une sera a fond rouge l'autre non, je prend cette fonction, je demande laquelle est en rouge il me dit les deux, pourquoi ? parce que les deux cellules ont pour format d'être rouge, c'est ce que cette fonction demande, mais elle demande pas de savoir laquelle est active.
Il est fort probable que cette fonction n'existe pas et se serait fort dommage de ne pas pouvoir mêler le VBA et les Mise en Forme Conditionnelle.
je précise que j'ai encore Excel 2003, il es possible aussi que dans 2007 cela change.
J'espère avoir été bien explicite et merci encore pour votre aide.
J'ai déjà essayé cette fonction, je suis d'accord, on peut savoir la couleur ou divers format de la Mise en Forme Conditionnelle se trouvant dans une cellule donnée.
Par-contre, exemple je mets une MFC dans la cellule A1 qui dit, si la valeur de cette cellule est supérieur à 10 alors (donc si condition VRAI) l'intérieur de la cellule devient rouge.
Cette même cellule, quand la condition est VRAI, (Intérieur Rouge) n'est pas différente des autres, car si on clique droit sur format de cellule "MOTIF", là on se rend compte que l'intérieur de la cellule n'est pas rouge.
Donc tous portent à croire que c'est la mise en forme conditionnel qui gère ce format et c'est pour cela qu'on ne peut pas faire de boucle de recherche sur une cellule à fond rouge ou tout autre format.
Voila mon problème exactement.
Maintenant cette fonction me permet de dire, ok la cellule A1 a une MFC et devient en rouge, elle a sa comme format et comme bordure etc...
Mais la question la plus importante, on ne peut pas différencier d'une cellule qui à Condition VRAI (donc qui est ACTIVE dans l'exemple dépasse la valeur 10) d'une autre.
Je prend une cellule A1 et A2 qui ont la même MFC, j'en met une à valeur 11 l'autre à 2, l'une sera a fond rouge l'autre non, je prend cette fonction, je demande laquelle est en rouge il me dit les deux, pourquoi ? parce que les deux cellules ont pour format d'être rouge, c'est ce que cette fonction demande, mais elle demande pas de savoir laquelle est active.
Il est fort probable que cette fonction n'existe pas et se serait fort dommage de ne pas pouvoir mêler le VBA et les Mise en Forme Conditionnelle.
je précise que j'ai encore Excel 2003, il es possible aussi que dans 2007 cela change.
J'espère avoir été bien explicite et merci encore pour votre aide.