Excel copier lignes après recherche

Fermé
Zantos - 29 avril 2009 à 10:22
 Utilisateur anonyme - 30 avril 2009 à 15:16
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

4 réponses

Utilisateur anonyme
30 avril 2009 à 15:16
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 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
29 avril 2009 à 14:06
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
Alors? tu ne vois pas de solutions ??
0
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
[..] 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