Bonjour,

Je souhaite pouvoir par le biais d'un bouton "recherche", rechercher un mot clef contenu dans une cellule des colonnes B, C, D et E. Pour cela je souhaiterais parcourir toutes les cellules de ces 4 colonnes, et que si jamais par exemple je recherche le mot "controle", qu'il détecte même la cellule contenant "opérateur de controle".

Voici la macro que j'ai mais qui ne correspond pas du tout à mon besoin puisque celle ci s'applique à une seule colonne, et que s'il y a un vide la macro s'arrête alors que moi je ne veux pas m'arrêter (je veux parcourir les lignes 2 à 100), et que la il faut que le mot de recherche soit égale au cnotenu de la cellule...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub recherche()
 
Message = "Entre le nom à chercher"
Title = "Recherche d'une nom"
MyValue = InputBox(Message, Title, Default)
Range("B1").Select 'entre la première cellule de la colonne des noms
For I = 1 To 50 'max de ligne dans ta colonne
If ActiveCell.Value = MyValue Then GoTo Fin
If ActiveCell.Value = "" Then GoTo Fin
ActiveCell.Offset(1, 0).Range("A1").Select
Next
Fin:
 
 
End Sub
Sinon j'ai ce code qui marche très bien mais il faut que le mot soit identique à la cellule or je voudrais que le mot soit ou identique à la cellule ou contenu ds la cellule. Aussi je voudrais que la macro ne sarrete pas au mot trouvé, mais qu'elles ne laisse affiché que les lignes ou ont été trouvé le mot...



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub Recherche_Mot()
 
Dim Str_Plage As String
Dim Cel As Range
Dim Feuil As Worksheet
Dim Str_critère As String
Dim X As Byte
 
Str_critère = InputBox("Mot à rechercher (quelque soit la langue)?")
For Each Feuil In Sheets
Str_Plage = Feuil.UsedRange.Address
For Each Cel In Feuil.Range(Str_Plage)
If UCase(Cel) = UCase(Str_critère) Then
X = MsgBox("Mot """ & Str_critère & """ trouvé :" & Chr(13) & Chr(13) & _
"Cliquer Oui pour voir la traduction," & Chr(13) & _
"Non pour continuer la recherche," & Chr(13) & _
"Annuler pour arrêter la recherche." & Chr(13), vbDefaultButton1 + _
vbQuestion + vbYesNoCancel, "MOT TROUVÉ")
Select Case X
Case 6
Feuil.Activate
Cel.Activate
Exit Sub
Case 2 'annuler on sort
Exit Sub
Case Else 'Non=7
'on fait rien, mais on pourrait
End Select
End If
Next Cel
Next Feuil
MsgBox ("pas trouvé")
End Sub