Colorer cellule contenant un terme

[Fermé]
Signaler
Messages postés
5
Date d'inscription
mardi 18 février 2014
Statut
Membre
Dernière intervention
27 février 2014
-
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
Bonjour,

J'ai un léger problème en vba. Je souhaite écrire une macro qui colorerait une cellule en jaune si elle contient "#CL#". Voici ci dessous le code que j'ai ecrit pour le moment. Le point positif, c'est que ça ne plante pas, le point négatif c'est que ça ne marche pas. Il ne se passe rien...du tout. C'est comme si je n'avais rien lancé. Comme si ma macro n'avait jamais existée.


Sub test()

With Worksheets("Feuil1")
nbcol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
For curseur = nbcol To 1 Step -1
If Cells(1, curseur) Like "#CL#" Then
Cells(1, curseur).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next curseur
End With

End Sub


Quelqu'un pourrait-il me dire à quel endroit je fais une erreur svp ?

Merci

2 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
Bonjour,

Puisque tu utilises un
With  Worksheets("Feuil1")
il te faut un point devant chaque Cells.

Ensuite utilise plutôt la fonction Instr() pour rechercher une chaîne de caractères dans une autre chaîne de caractères. Evites aussi l'utilisation de .Select, tu peux très bien faire
With .Cells(1, curseur).Interior

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
5
Date d'inscription
mardi 18 février 2014
Statut
Membre
Dernière intervention
27 février 2014

Super!! Merci.
Cela fonctionne désormais.

Juste par curiosité, saurais-tu comment faire pour repérer #CL# même si ce terme n'est pas au début de la cellule stp? Pour le moment il repère les cellules ne possédant que "#CL#" ou "#CL#blablabla"

J'utilise ta fonction de cette façon:
InStr(Cells(1, curseur), "#CL#") = 1
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
En faisant

If InStr(.cells(1,curseur), "#CL#") <> 0 Then
' blablabla
End If


;0)
Messages postés
5
Date d'inscription
mardi 18 février 2014
Statut
Membre
Dernière intervention
27 février 2014

Genial,
Je ne connaissais pas cette astuce. Pour moi le "=1" renvoyait vrai. Le "différent de faux" ne me serait pas venu à l'idée.
Merci beaucoup !!
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 182
Le retour de InStr() donne la position du 1er caractère de la chaine à rechercher dans la chaîne de caractères testée.