Vba - comparer phrase & mot

Résolu
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   -  
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde,

Un petit souci avec les comparaisons,

J'ai une colonne A avec des métiers, ex : Chef de département, Chef de cellule, Adjoint au chef de cellule, etc ...
et une autre colonne ETAT (non renseignée)

Dans une autre feuille, j'ai une liste de mots clés, ex : Chef, Responsable, etc

LE BUT : si on retrouve un des mots clés dans la colonne A, alors ETAT="OK"

voici le code :

Dim row As Integer
Dim word As Integer
Dim found As Boolean

For row = 2 To 10
found = False
For i = 1 To 10
found = found Or Not Sheets("compil_fonction").Cells(row, 1).Find(Sheets("mot_clef").Cells(i, 2)) Is Nothing
Next
MsgBox (found)
If found Then
Sheets("compil_fonction").Cells(row, 10).Value = "OK"
Else
Sheets("compil_fonction").Cells(row, 10).Value = ""
End If
Next row

J'ai lancé ce code, mais rien ne s'affiche dans ma colonne ETAT, pourtant je retrouve bien des mots clés dans la colonne A.

Qui peut m'aider ?

Merci par avance !!!

A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Avec les titres en Feuil2!A1:A2, à adapter à ton cas :
ActiveCell.Offset(0, 1) = ""
For i = 1 To 2
    If InStr(ActiveCell.Value, Worksheets("Feuil2").Cells(i, 1).Value) > 0 Then
        ActiveCell.Offset(0, 1) = "OK"
        Exit For
    End If
Next i


eric
0
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   21
 
Bonjour eriiic !

Je suis en train de tester mais j'ai un peu de mal ...

a bientot !
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

J'ai essayé d'adapter à ton code, je te laisse tester :
Dim c1 as range, lig as long, i as long
For lig = 2 To 10
    Set c1 = Sheets("compil_fonction").Cells(lig, 1)
    c1.Offset(0, 1) = ""
    For i = 1 To 2 ' allonger la liste des mots-clés
        If InStr(c1.Value, Sheets("mot_clef").Cells(i, 2).Value) > 0 Then
            c1.Offset(0, 1) = "OK"
            Exit For
     End If
    Next i
Next lig


Evite d'utiliser des mots-clés vba comme nom de variable (row par exemple)

eric
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Bonjour Eric,
Ti problème avec Inst, ne trouvera pas Chef/chef
Je verrais plutôt..
'A mettre en haut du module.
Option Compare Text

Sub Comparer()
Dim ligS As Long, LigC As Long
    Sheets("compil_fonction").Select
    For LigC = 1 To Range("A65536").End(xlUp).Row
        With Sheets("mot_cle")
            For ligS = 1 To .Range("A65536").End(xlUp).Row
                If Cells(LigC, 1) Like "*" & .Cells(ligS, 1) & "*" Then
                    Cells(LigC, 2) = "OK": Exit For
                End If
            Next ligS
        End With
    Next LigC
End Sub

A+
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Salut lermite,

Bonne remarque.
A noter qu'on aurait pu aussi convertir en minuscule les 2 chaines avec lcase()
Et tu as été plus loin dans le code, il est plus complet.

eric
0
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   21
 
je vais tester, merci bcp!!
0
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   21
 
Je viens tout juste de tester, et ca fonctionne mais pas pour tous les mots cles.
C'est a dire, le code repère bien le premier mot de "mot_clef" qui est "Chef" et mets bien "OK" dans la colonne ETAT. Mais, rien ne se passe pour les autres mots clefs, c'est a dire, que meme si les autres mots clefs sont bien présents dans les cellules, le "OK" n'apparait pas.
0
Tehani_t Messages postés 240 Date d'inscription   Statut Membre Dernière intervention   21
 
Voila ce qui se passe, dans ma feuille "mot_clef" en colonne A, j'ai ma liste de mots clefs, on trouve le premier mot clef à la ligne 1, donc pas de titre.

Le programme ne base sa recherche uniquement sur le premier mot de ma liste de mots clef
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Tu as dû te tromper qcq part...
http://www.cijoint.fr/cjlink.php?file=cj201103/cijNb2sg5l.xls

eric

PS: option compare text fonctionne aussi avec instr
0