MFC avec VBA => argument ou appel de proc incorrect

Résolu
Mouftie Messages postés 234 Statut Membre -  
Mouftie Messages postés 234 Statut Membre -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Pourquoi =ET alors qu'il n'y a qu'un critere ???
    0
  2. Mouftie Messages postés 234 Statut Membre 17
     
    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
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  4. Mouftie Messages postés 234 Statut Membre 17
     
    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
    0