MFC avec VBA => argument ou appel de proc incorrect

Résolu/Fermé
Signaler
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
-
Bonjour,

je voudrais faire une mfc qui colore en orange les cellules dont la fin du texte est "Trouvé".
J'ai écrit
With ThisWorkbook.Worksheets(2).Range("B1:B20")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(RIGHT(RC2,6)=""Trouvé"")"
.FormatConditions(1).Interior.ColorIndex = 46
End With
mais j'obtiens un message d'erreur de windows ci-dessus.
J'ai également essayé
...
Formula1:="=ET(DROITE($B1;6)=""Trouvé"")"
...
Formula1:="=AND(RIGHT($B1,6)=""Trouvé"")"
quand je n'ai pas de message, il ne se passe rien.

Merci de bien vouloir m'aider

4 réponses

Messages postés
16123
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
2 décembre 2021
1 563
Bonjour,

Pourquoi =ET alors qu'il n'y a qu'un critere ???
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
14
Bonsoir f894009,
D'accord pour le Et (je voulais mettre 2 critères, mais comme ça ne fonctionnait pas j'ai voulu simplifier au maximum pour trouver l'erreur, et j'ai oublié de retirer And).
Mais ça ne change rien au problème, avec ou sans And ; la formule "à la main" est =DROITE($A1;6)="trouvé" et cela fonction, avec VBA non ?

(entre nous =ET(DROITE($A1;6)="trouvé") fonctionne aussi ;>)
Merci quand même
Messages postés
24222
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
6 978
Bonsoir,

Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ET(DROITE($B1;6)=""Trouvé"")"
a l'air de bien marcher.

Et il faudrait plutôt que tu fasses ta mfc sur une cellule et que tu la copies :
        Range("B1:B20").FormatConditions.Delete
[B1].FormatConditions.Add Type:=xlExpression, Formula1:="=ET(DROITE($B1;6)=""Trouvé"")"
[B1].FormatConditions(1).Interior.ColorIndex = 46
[B1].Copy
Range("B2:B20").PasteSpecial Paste:=xlPasteFormats

sinon il y n'y a pas d'incrémentation de ligne sur $B1

eric

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Messages postés
215
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
6 septembre 2020
14
Bonjour Eriiic,
Désolée de ne pas avoir répondu plus tôt.
cela ne fonctionne toujours pas
néanmoins, ça m'a donné l'occasion de trouvé l'erreur DE PARENTHÈSE !

Donc, voilà ce que ça donne :
Sub FiltreMot()
With Range("B1:B20")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=DROITE($B2;6)=""trouvé"""
.FormatConditions(1).Interior.ColorIndex = 46
End With
End Sub