recherche d'un mot dans une cellule

  • Initiateur de la discussion Initiateur de la discussion stepy73
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

stepy73

XLDnaute Nouveau
Bonjour à tous, Voici la macro qui permet de faire une recherche sur toute les feuilles
Voici ma question : La macro me permet de faire une recherche mais seulement sur 1 mot par cellule, ce qui fait que si j'ai une phrase complete, il ne voit rien du tout et me dit qu'il ne trouve donc pas le mot, je suis clair
En gros si je cherche le mot "chien" il me trouvera pas le mot si dans ma cellule il est écrit "le chien dort"

Est ce qu'un expert peut me dire comment résoudre cela ?

d'avance merci pour votre aide


Option Explicit
Sub TrouverMotChoix()
Dim Mot As String
Dim Ws As Object
Dim Nbre As Long
Dim Cycle As Long
Dim Trouvé As Variant
Dim CellAddress As Variant
Dim MyValue As String

'Définition de la variable à rechercher
Mot = InputBox("Saisir la valeur à chercher.", Title:="Recherche" )
'Vérification si existante
If Mot = "" Then Exit Sub
For Each Ws In Worksheets
Nbre = Nbre + Application.CountIf(Ws.UsedRange, "=" & Mot)
Next Ws
'Message en cas de mot inexistant
If Nbre = 0 Then
MyValue = MsgBox(" La valeur " & Mot & " n'est pas enregistrée ", vbOKOnly, " Message " )
Else
Cycle = 0
'Recherche et arrêt sur les cellules contenant le Mot
For Each Ws In Worksheets
With Ws
.Activate
Set Trouvé = .Cells.Find(What:=Mot, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart)
If Not Trouvé Is Nothing Then
CellAddress = Trouvé.Address
Do
Cycle = Cycle + 1
Trouvé.Activate
If Nbre = 1 Then
MyValue = MsgBox(" La valeur " & Mot & " est enregistrée 1 seule fois ", vbOKOnly, " Message " )
Exit Sub
End If
If Cycle = Nbre Then
MyValue = MsgBox(" La valeur " & Mot & " sélectionnée est la dernière !", vbOKOnly, "Message" )
Sheets("sheet1" ).Activate
Range("A1" ).Select
Exit Sub
Else
MyValue = MsgBox(" La valeur " & Mot & " sélectionnée est la " & Cycle & " sur " & Nbre & " existantes. " & vbLf & _
" Voulez vous continuer la recherche ? ", vbYesNo, "Message" )
If MyValue = vbNo Then Exit For
Set Trouvé = .Cells.FindNext(After:=Trouvé)
End If
Loop While Not Trouvé Is Nothing And Trouvé.Address <> CellAddress
End If
End With
Next Ws
End If
End Sub
 
Dernière édition:
Re : recherche d'un mot dans une cellule

bonsoir Stepy73 et bienvenue sur ce forum

Ton problème : le mot doit être entouré de caractères génériques sans le "="

Remplace le code avec
Code:
Nbre = Nbre + Application.CountIf(Ws.UsedRange, "*" & Mot & "*")

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
281
Réponses
4
Affichages
223
Réponses
5
Affichages
232
Réponses
7
Affichages
266
Retour