Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Chercher dans une collone un mot et renvoyer toutes les lignes où apparaissent ce mot.

Alexandreee

XLDnaute Nouveau
Bonjour à tous,

Après plusieurs heures de recherche sur internet, je me tourne vers vous pour vous demander s'il existe une formule ou une macro permettant d'automatiser le cas suivant :

J'ai un tableau de 6 colonnes et plus ou moins 500 lignes. La 6ème colonne est composée de cellules contenant une description (un texte d'un dizaine de mots).
Je souhaite pouvoir effectuer une (ou plusieurs) recherche par mot clef dans cette plage afin d'extraire vers une autre feuille les lignes où apparaissent ce mot.

Je doute de plus en plus qu'une simple fonction permettent ceci et je n'ai pas encore trouvé de code de macro le permettant. Mes compétences en VBA étant limitées au ras du sol, je ne peux pas me lancer dans cette entreprise.
Je vous demande donc si cela est possible; si quelqu'un a une solution je prend, sinon j'abandonne cette idée.

En vous remerciant d'avance pour vos réponses.
 

vgendron

XLDnaute Barbatruc
Bonjour
il faudrait que tu postes un fichier excel en guise d'exemple SANS données confidentielles
pas besoin de mettre les 500 lignes.. une dizaine suffit, il faut juste que cela soit représentatif de ton fichier final
représentatif = bon nombre de colonnes, avec les bons noms aux bons endroits..
ex. si on te fait une formule en colonne J qui travaille sur les colonnes A et C.. et au final. les infos sont en colonnes D et E...
autant avoir le bon fichier tout de suite
 

Alexandreee

XLDnaute Nouveau

Voici un extrait du fichier
 

Pièces jointes

  • catalogue test.xlsx
    10 KB · Affichages: 43

job75

XLDnaute Barbatruc
Bonjour Alexandreee, vgendron, JB,

Si l'on s'en tient au problème posé il suffit de filtrer le tableau sur la colonne E :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [G1]) Is Nothing Then Exit Sub
Dim P As Range
Application.ScreenUpdating = False
AutoFilterMode = False
[A:E].AutoFilter 5, "*" & [G1] & "*" 'filtre automatique
Set P = UsedRange
With Sheets("Résultat")
    .Cells.Delete 'RAZ
    P.EntireRow.Copy .[A1]
    .Activate 'facultatif
End With
AutoFilterMode = False
End Sub
Cette macro n'est même pas indispensable, l'opération peut se faire manuellement.

A+
 

Pièces jointes

  • catalogue test(1).xlsm
    24.5 KB · Affichages: 50

Alexandreee

XLDnaute Nouveau

Bonjour Job75 et merci, c'est exactement le code que je cherchais, par contre lorsque je le copie vers mon fichier original, il m'affiche l'erreur d’exécution N°9 : "L'indice n'appartient pas à la sélection" pour ensuite surligner la ligne N° 8 du code suivant :

Code:
1 Private Sub Worksheet_Change(ByVal Target As Range)
2 If Intersect(Target, [M1]) Is Nothing Then Exit Sub
3 Dim P As Range
4 Application.ScreenUpdating = False
5 AutoFilterMode = False
6 [A:E].AutoFilter 5, "*" & [M1] & "*" ')
7 Set P = UsedRange
8 With Sheets("Résultat")
9 .Cells.Delete 'RAZ
10  P.EntireRow.Copy .[A1]
11  .Activate '
12 End With
13 AutoFilterMode = False
14 End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…