Pour copier seulement certaines lignes dans une autre feuille, il existe deux techniques
- Utiliser l'outil Filtre avancé. Avec cette outil, vous pouvez filtrer et transférer le résultat dans une autre feuille de calcul
- La fonction FILTRE d'Excel 365 vous permet de sélectionner une partie de vos données
L'outil Filtre Avancé
L'outil filtre avancé a toujours existé dans toutes les versions d'Excel. A une époque, c'était le seul moyen d'extraire des données sans doublon. Mais ici, nous allons utiliser cet outil pour récupérer seulement les lignes correspondantes à une seule valeur. Le résultat sera copié dans une nouvelle feuille.
Dans le classeur suivant, nous avons la liste des produits vendus sur une semaine et nous voulons seulement copier le produit qui a la référence REF-002
Etape 1 : Ajout du critère à copier
Pour utiliser l'outil Filtre Elaboré, nous DEVONS ajouter à coté de notre tableau de données, le critère à copier. Mais PLUS IMPORTANT ENCORE, nous devons aussi écrire l'entête de colonne où se fera la recherche du critère
Etape 2 : Paramétrer le filtre avancé
Le travail préparatoire est déjà terminé. Il ne reste plus qu'à appeler le menu filtre élaboré et renseigner les paramètres attendus
- Choisissez l'option Copier vers un autre emplacement
- Sélectionner les cellules contenant les données, y compris les entêtes
- Sélectionner le critère à copier, y compris les entêtes
- Indiquer la référence où les cellules vont être copiées
Etape 3 : Résultat sur la même feuille
Il ne reste plus qu'à cliquer sur le bouton OK de la boîte de dialogue pour lancer le processus de copie. Seulement, CA NE FONCTIONNE PAS !!!!!! Du moins, pas tout de suite
En fait, l'outil Filtre avancé, depuis le ruban, ne permet pas de copier les données dans une autre feuille de calcul.
Par contre, si la cellule de destination est dans la même feuille, comme par exemple J1, là, ça fonctionne
Et le résultat est parfait
Etape 4 : Résoudre le problème avec une macro
Comme on vient de le voir, le filtre avancé ne nous permet pas de copier vers une autre feuille. Mais en construisant un programme VBA, on résout le problème facilement.
- Créer une nouvelle feuille (ici Destination)
- Lancez l'enregistreur de macro.
- Refaites les mêmes étapes d'extraction en recopiant sur la même feuille
- Quand vous avez terminé le processus d'extraction des lignes sur la même feuille, vous pouvez arrêter l'enregistreur.
- Ouvrir le visual basic Editor pour voir le code avec le raccourci Alt + F11
- Dans le module 1, vous voyez le code s'afficher
Sub Macro1()
Range("A1:F13").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"H1:H2"), CopyToRange:=Range("Destination!A1"), Unique:=False
End Sub
- Repérer l'instruction CopyToRange
- Transformer cette instruction en y indiquant le nom de la feuille et la référence de la cellule.
- Fermer l'éditeur VBA
- Appuyez sur les touches Alt + F8 pour faire apparaître la boite de dialogue des macros
- Lancez la Macro 1 (bouton Exécuter)
- Maintenant, les lignes sont copiées dans la feuille Destination
Utilisation de la fonction FILTRE
Si vous travaillez avec Microsoft 365, vous avez la fonction FILTRE. Grâce à cette fonction, nous allons pouvoir copier les lignes du tableau initial dans une autre feuille et se basant sur un critère.
=FILTRE(Source!A2:F13,Source!A2:A13="REF-002")
Avantage / Inconvénient des méthodes
- La méthode avec la fonction FILTRE est extrêmement simple à construire. Contrairement à la méthode avec le filtre avancé qui nécessite l'utilisation d'une macro.
- A l'inverse, la méthode du filtre élaboré copie les données brutes et le format ce qui est un avantage. La fonction FILTRE retourne le résultat sous forme de formule et il peut y avoir un risque de chevauchement (erreur propagation)
Articles liés
- Top 10 des astuces sur les feuilles de calcul
- Fusionner Plusieurs Feuilles Excel en une seule
- Combiner, fusionner, plusieurs sources avec Power BI
A vous d'utiliser la méthode qui s'applique le mieux à votre besoin de copier des lignes dans une autre feuille.