Vba - comparer phrase & mot
Résolu
Tehani_t
Messages postés
245
Statut
Membre
-
Tehani_t Messages postés 245 Statut Membre -
Tehani_t Messages postés 245 Statut Membre -
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 !!!
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:
- Vba - comparer phrase & mot
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Voir mot de passe wifi android - Guide
2 réponses
Bonjour,
Avec les titres en Feuil2!A1:A2, à adapter à ton cas :
eric
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
Bonjour,
Bonjour Eric,
Ti problème avec Inst, ne trouvera pas Chef/chef
Je verrais plutôt..
A+
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+
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.
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.
Je suis en train de tester mais j'ai un peu de mal ...
a bientot !
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 ligEvite d'utiliser des mots-clés vba comme nom de variable (row par exemple)
eric