XL 2021 filtrer données puis envoi sur une autre feuille

cgpa

XLDnaute Occasionnel
Bonjour le Forum,
J'utilise un filtre à l'aide de l'outil "segment date" (facilité visuelle) pour pouvoir ensuite envoyer les données filtrées sur une autre feuille avec un bouton macro classique. Je ne veux pas travailler sur la feuille initiale.
Les données filtrées arrivent bien sur la nouvelle feuille, mais elles sont suivies par les données qui étaient masquées par le filtre!
Autrement dit, j'envoie toutes les données de la feuille initiale au lieu des données filtrées uniquement.
J'imagine un problème de code dans le module 4.
La feuille source = "Ventes" et la feuille de destination = "impression jour". J'ai bien essayé avec une requête, mais je ne sais pas comment dire à la requête qu'il faut filtrer avant.
Actuellement, je dois refiltrer sur la feuille finale pour impression. En plus, je constate que l'export prend du temps étant donné les milliers d'enregistrements de mon fichier.
Je propose un fichier allégé de tous les userforms et données personnelles.
Quelqu'un peut-il m'informer du code à appliquer pour n'envoyer que les données filtrées (le filtre porte sur la date)?
Merci d'avance et bonne journée!
 

Pièces jointes

  • Snack 1.2 allégé.xlsm
    908.3 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Cgpa,
Un exemple possible en PJ avec :
VB:
Sub Macro1()
    Sheets("Exemple").Cells.Clear                                   ' Effacement feuille Exemple
    Sheets("Ventes").Range("Tableau1Ventes").SpecialCells(xlCellTypeVisible).Copy    ' Copy des données visibles
    Sheets("Exemple").Select
    [A1].Select
    ActiveSheet.Paste                                               ' Collage des données visibles
    [A1].Select
End Sub
 

Pièces jointes

  • Snack 1.2 allégé.xlsm
    933.1 KB · Affichages: 5

cgpa

XLDnaute Occasionnel
Bonjour Cgpa,
Un exemple possible en PJ avec :
VB:
Sub Macro1()
    Sheets("Exemple").Cells.Clear                                   ' Effacement feuille Exemple
    Sheets("Ventes").Range("Tableau1Ventes").SpecialCells(xlCellTypeVisible).Copy    ' Copy des données visibles
    Sheets("Exemple").Select
    [A1].Select
    ActiveSheet.Paste                                               ' Collage des données visibles
    [A1].Select
End Sub
Merci Sylvanu, je vais pouvoir avancer!
Comme je vais coller à un endroit bien précis, il me faudra supprimer les données présentes avant de coller. Comment remplacer " Sheets("Exemple").Cells.Clear" par le contenu du tableau?
Mon tableau de destination s'appelle Tableau1Ventes20
Bonjour Cgpa,
Un exemple possible en PJ avec :
VB:
Sub Macro1()
    Sheets("Exemple").Cells.Clear                                   ' Effacement feuille Exemple
    Sheets("Ventes").Range("Tableau1Ventes").SpecialCells(xlCellTypeVisible).Copy    ' Copy des données visibles
    Sheets("Exemple").Select
    [A1].Select
    ActiveSheet.Paste                                               ' Collage des données visibles
    [A1].Select
End Sub

j'ai trouvé ceci qui fonctionne:
Public Sub Reset_data()
With ActiveSheet.ListObjects(1)
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
179

Statistiques des forums

Discussions
313 283
Messages
2 096 807
Membres
106 751
dernier inscrit
Souleymani