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
Configuration: Windows XP
Firefox 3.0.10

4 réponses

  1. 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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Zantos
       
      Alors? tu ne vois pas de solutions ??
      0
  3. 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
  4. 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