XL 2019 Copier coller des données filtrer sur une autre feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Cesar1275

XLDnaute Occasionnel
Bonjour à tous

Mon fichier comporte une macro qui extrait des données puis qui les filtre.

Je souhaiterais ajouter une macro qui, après la filtration des données, copie les données résultantes de la filtration et les colle des une autre feuille.

Il faudrait que le collage n'écrase pas les données précédentes de façon à avoir un historique des données filtrées.

Merci d'avance pour votre aide !
 

Pièces jointes

Solution
Bonjour Cesar,
Un essai en PJ avec :
VB:
Sub CopierCollerNonMasquées()
    Dim DL%, DL2%
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    DL2 = Sheets("Feuil2").Range("A65500").End(xlUp).Row
    Range("A2:L" & DL).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil2").Range("A" & 1 + DL2)
End Sub
Lancer CopierCollerNonMasquées à partir de la feuille1, copie les données à la fin de la Feuil2.
Bonjour Cesar,
Un essai en PJ avec :
VB:
Sub CopierCollerNonMasquées()
    Dim DL%, DL2%
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    DL2 = Sheets("Feuil2").Range("A65500").End(xlUp).Row
    Range("A2:L" & DL).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil2").Range("A" & 1 + DL2)
End Sub
Lancer CopierCollerNonMasquées à partir de la feuille1, copie les données à la fin de la Feuil2.
 

Pièces jointes

Bonjour Cesar,
Un essai en PJ avec :
VB:
Sub CopierCollerNonMasquées()
    Dim DL%, DL2%
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    DL2 = Sheets("Feuil2").Range("A65500").End(xlUp).Row
    Range("A2:L" & DL).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil2").Range("A" & 1 + DL2)
End Sub
Lancer CopierCollerNonMasquées à partir de la feuille1, copie les données à la fin de la Feuil2.
Merci Sylvanu ta macro fonctionne parfaitement !
 
Bonjour Cesar,
Un essai en PJ avec :
VB:
Sub CopierCollerNonMasquées()
    Dim DL%, DL2%
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    DL2 = Sheets("Feuil2").Range("A65500").End(xlUp).Row
    Range("A2:L" & DL).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil2").Range("A" & 1 + DL2)
End Sub
Lancer CopierCollerNonMasquées à partir de la feuille1, copie les données à la fin de la Feuil2.
J'ai réessayé ta macro avec des données d'une autre date mais ça ne fonctionne plus. Les données filtrées ne sont plus collées dans la feuille.

PS : J'ai légèrement modifié ta macro car j'ai modifié les nom et la présentation des feuille (elle fonctionnais toujours avec les modifications lorsque je la testait avec les données du premier fichier) .
 
Essayez de faire un fichier test représentatif et de nous le donner.

Questions en vrac :
-Les données à trier ont bien la colonne A remplie ?
-La feuille 2 existe t-elle ?
- Les données à copier vont elles bien de la colonne A à L ?
 
Essayez de faire un fichier test représentatif et de nous le donner.

Questions en vrac :
-Les données à trier ont bien la colonne A remplie ?
-La feuille 2 existe t-elle ?
- Les données à copier vont elles bien de la colonne A à L ?
Voici le fichier avec des données filtrées du 23 mars. Vous pourrez constater que la concaténation ne s'effectue pas.
- Oui la colonne A est remplie par les données filtrées
- La feuille 2 a changé de nom et s'appelle maintenant concaténation mais c'est toujours la même feuille.
- Oui les données à copier vont bien de A à L sans prendre ne compte la première ligne

Merci pour votre aide !
 

Pièces jointes

En fait ça marche très bien.
Seulement vous avez plein de ligne en fin de feuille Concaténation, jusqu'à la ligne 476.
Donc la macro colle bien ... après cette ligne.

Il vous suffit de supprimer toutes ces lignes. et comprendre comment elles sont arrivées là. 🙂

1616595577609.png


1616595603022.png
 
En fait ça marche très bien.
Seulement vous avez plein de ligne en fin de feuille Concaténation, jusqu'à la ligne 476.
Donc la macro colle bien ... après cette ligne.

Il vous suffit de supprimer toutes ces lignes. et comprendre comment elles sont arrivées là. 🙂

Regarde la pièce jointe 1099832

Regarde la pièce jointe 1099833
Vous avez l'œil effectivement. C'est certainement l'habitude qui parle 😉

Je crois savoir d'où le problème peut venir.

Pour les données du 22 mars, il ne résulte aucune ligne après filtration.

La macro ne devrait donc copier aucune ligne dans la feuille de concaténation.

Or, la macro colle 195 lignes vides pour la journée du 22 ...

Ce qui fait que les données de la journée du 23 se retrouvent à êtres copiées à la ligne 202 ...

Avez-vous une explication à cela ?
 
Je n'avais pas prévu le cas où il n'y aurait rien à coller.
Rectifié en PJ. A tester.
Effectivement je ne vous l'avais pas précisé.
J'ai retesté votre macro mais le problème persiste.
Vous verrez dans le fichier en PJ que l'export du 24 mars a fonctionné. J'ai ensuite fait un export du 22 mars (vide) et là, la macro a collé les autres données du 24 (données qui ne devraient pas êtres collées normalement) à la ligne 202...
Je n'arrive pas du tout à comprendre pourquoi la macro a réagi de cette façon ?
 

Pièces jointes

Je n'arrive pas du tout à comprendre pourquoi la macro a réagi de cette façon ?
Je pense que cela est du au fait que votre base de données à des trous, je ne sais pas comment les filtres réagissent.
Par ex dans votre fichier vos données vont de la ligne 4 à la ligne 304 puis de la ligne 501 à la ligne 778.
Pourriez vous refaire votre test en supprimant les lignes vides de votre base de données ?

En Pj j'ai fait un essai en supprimant les lignes vides de la BDD puis en exécutant la macro avec des filtres sur ADC. Je n'arrive pas à retrouver votre souci.
 

Pièces jointes

Je pense que cela est du au fait que votre base de données à des trous, je ne sais pas comment les filtres réagissent.
Par ex dans votre fichier vos données vont de la ligne 4 à la ligne 304 puis de la ligne 501 à la ligne 778.
Pourriez vous refaire votre test en supprimant les lignes vides de votre base de données ?

En Pj j'ai fait un essai en supprimant les lignes vides de la BDD puis en exécutant la macro avec des filtres sur ADC. Je n'arrive pas à retrouver votre souci.
Je comprend !

Effectivement il y a des trous dans les données sur la feuille 1. Cela est en réalité due au fait que la feuille n'était pas pas nettoyés entre 2 exports ce qui faisait que des données de précédents exports restaient en bas de la feuille.
J'ai fait les modifications nécessaires afin que cela n'arrive plus.

Merci encore pour votre aide et bonne journée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
368
Retour