Bonjour,
En VBA, teste et adapte à ta convenance. Reviens si tu as des questions :
Private Sub Chercher()
Dim LaPlage As Range
Dim Cel As Range
Dim Adr As String
Dim Chaine As String
Dim Resultat As String
'demande par l'intermédiaire d'un boite de dialogue mot recherché
Chaine = InputBox("Mot recherché !")
'si pas renseigné, fin
If Chaine = "" Then Exit Sub
'défini la plage de recherche sur la feuille active
Set LaPlage = Plage(ActiveSheet)
'effectue la recherche
'- xlPart pour une recherche en partie
'- xlWhole pour une recherche exacte
Set Cel = LaPlage.Find(Chaine, , xlValues, xlPart)
'si trouvé, boucle et stocke les différentes adresses des cellules
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
Resultat = Resultat & Cel.Address(0, 0) & vbCrLf
Set Cel = LaPlage.FindNext(Cel)
Loop While Adr <> Cel.Address
MsgBox "Le mot recherché a été trouvé dans les cellules suivantes :" & vbCrLf & Resultat
Else
MsgBox "Mot non trouvé !"
End If
End Sub
Function Plage(Fe As Worksheet) As Range
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function
Hervé.