Recherche de plusieurs mots clés

  • Initiateur de la discussion Initiateur de la discussion Antonin
  • 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 !

Antonin

XLDnaute Nouveau
Bonjour,
Je souhaiterais coder une macro de recherche de mots clés. Par exemple : je rentre dans une boîte de dialogue "tata toto" et j'obtiens toutes les cellules contenant les mots "tata" et "toto", pas forcément dans le même ordre et pas uniquement ces mots-ci (exemple : "toto blabla tata").

Pour le moment, je suis parvenu à écrire un code qui fonctionne pour 1 mot, et recopie toutes les cellules contenant le mot en question dans une autre feuille de mon classeur (avec, dans la colonne d'à coté, l'adresse originale de la cellule). J'ai adapté cette macro pour faire des recherches successives, mot par mot (si je recherche 3 mots, je fais tourner 3 macros semblables les unes après les autres qui effectuent une recherche dans les résultats de la recherche précédente), mais il serait plus simple de ne faire qu'une seule recherche.

Ci-dessous mon code :
Code:
Sub Recherche_rapide()
'
' Recherche_rapide Macro
'

'Déclaration des variables
Dim motcle As String
Dim c As Range
Dim k As Double, precedenteRech As Range, derligne As Long

'Initialisation des variables
derligne = 0
k = 2
Set precedenteRech = Worksheets(1).Cells(1, 1)
'
Worksheets(3).Cells.Clear       'Vide la feuille des résultats
'
 motcle = InputBox("Entrez un mot (et un seul!)", "Recherche")      'Saisie du mot recherché
 Do
    Set c = Worksheets(1).Columns(1).Find(What:=motcle, _
        After:=precedenteRech, LookIn:=xlValues, Lookat:=xlPart, _
        SearchDirection:=xlNext, searchOrder:=xlByRows, MatchCase:=False)       'Recherche du mot
    If c.Row <= derligne Then Exit Do           'Si le résultat se trouve en amont du résultat précédent, on sort de la boucle (pour éviter une boucle infinie)
    derligne = c.Row                            'Définit le numéro de la ligne du résultat de la recherche en cours
    Set precedenteRech = c                      'Enregistre le résultat en cours pour la recherche suivante
    Worksheets(3).Cells(k, 1) = c               'Copie le résultat sur la feuille des résultats
    Worksheets(3).Cells(k, 2) = c.Address       'Copie l'adresse originale de la cellule copiée
    k = k + 1                                   'Incrémentation du compteur pour éviter d ecraser le résultat précédent
 Loop While True
'
End Sub

Merci d'avance!
 
Re : Recherche de plusieurs mots clés

Bonjour

Une piste
La fonction "split" permet de transférer des éléments d'une phrase dans un tableau

Dim tablo() as string

tablo= split(mocle," ")

Ensuite faire la recherche pour tous les mots qui sont dans le "tablo"

JP
 
- 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
19
Affichages
475
Réponses
4
Affichages
180
Réponses
1
Affichages
180
Réponses
5
Affichages
244
Retour