Excel copier lignes après recherche

Zantos -  
 Utilisateur anonyme -
Bonjour,

J'ai besoin de votre aide...

Dans grand un fichier excel contenant 'moult' lignes, je voudrais créer une macro qui me permettrai de rechercher un mot, puis de sélectionner les lignes dans lesquelles ce mot apparait, puis finalement de les copier pour les transposer à un autre endroit (autre classeur ou feuille)... (ouf !!)
Bref je vois pas trop comment m'y prendre..
Si vous avez des idées, je frôle la tendinite du pouce à force de Ctrl+C, Crtl+V

Merci
A voir également:

4 réponses

Utilisateur anonyme
 
Bonjour,

Exemple type :
Option Explicit

Sub Traitement()

    Dim Plage As Range, Cible As Range, Ligne As Long
    Dim Feuille As Worksheet, Resultat As Worksheet
    
    ' Ne pas effectuer l'affichage pendant la macro
    ' Ceci permet de minimiser le temps d'exécution
    ' Enlever le commentaire
    'Application.ScreenUpdating = False
    
    ' Définition de la plage de recherche
    Set Plage = ActiveSheet.UsedRange
    Set Feuille = ActiveSheet
    
    ' Ajout d'une nouvelle feuille recevant les copies
    ActiveWorkbook.Sheets.Add.Name = "Resultat"
    Set Resultat = ActiveSheet
    
    ' Balayage de la plage de données
    Feuille.Activate
    For Each Cible In Plage
        ' Validation du mot clé recherché
        If (Cible.Value = "Mot_Recherché") Then
            ' Sélection de la ligne
            Cible.EntireRow.Select
            ' Lance la copie
            Selection.Copy
            ' Changement de feuille
            Resultat.Activate
            ' Déterminer à quel ligne copier le résultat
            Ligne = (Range("A1:A65536").End(xlDown).Row + 1)
            ' Sélection de l'emplacement pour copier
            Range("A" & Ligne).Select
            ' Copie
            ActiveSheet.Paste
            ' Désactivation du mode copier/coller
            Application.CutCopyMode = False
            ' Retour à la feuille de recherche
            Feuille.Activate
        End If
    Next Cible
    
    ' Réactiver l'affichage
    ' Enlever le commentaire si enlever en haut
    'Application.ScreenUpdating = True
    
End Sub
'

Lupin
2
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 139
 
Salut,

Donnes plus d'explications, dans quelle colonne doit se faire la recherche et le mot recherché, ensuite la ligne doit elle être simplement copiée ou coupée ou encore le mot déclencheur doit il être changé pour ne pas déclencher la macro la fois prochaine.
Que veux tu dire par transposer, c'est mettre une ligne en colonne, (A1, B1, C1 etc sur une colonne ex. D1, D2, D3 etc

A+
0
Zantos
 
Alors? tu ne vois pas de solutions ??
0
zantos
 
Ok

Enfait, j'ai une grande (très grande) liste extraite d'une base de données que j'ai besoin de traiter..
Il s'agit d'une liste extraite d'une GMAO qui répertorie quantités d'informations, interventions, pannes...
Comme cette liste est un peu mal foutue, Il faudrait que je puisse selectionner puis copier les lignes dont une cellule contient un mot précis, et les extraire vers une autre feuille du même classeur. Classeur dans lequel je pourrais procéder à un filtrage plus précis..

Voila,je ne sais pas si c'est plus clair, si besoin de plus de précisions n'hésites pas..
Merci
0
zantos
 
[..] et non le mot n'a pas besoin d'être modifé, car le mot-clé va varier en fonction des informations que je recherche dans cette liste.

Par exemple si je recherche des infos sur une machine précise, je voudrais entrer le mon de cette machine dans une boite de dialogue (ou qqch comme ca), extraire toute les lignes où ce nom apparait (parfois qlq centaines) et travailler ensuite dessus. Ca me permetrait de gagner beaucoup de temps et d'éviter de rater des infos car certaines cellules sont parfois pleines à craquer...
0