IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copy Coller avec AdvancedFilter [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut Copy Coller avec AdvancedFilter
    Bonjour
    voici le code suivant qui utilise option AdvancedFilter pour Copier et Coller vers une autre feuil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Explicit
    Sub Copy_Avec_AdvancedFilter()
        Dim ShGrLvr As Worksheet, ShMsq As Worksheet
        Dim RgData As Range, RgCriter As Range, Rg As Range
        Dim DerLig As Long, LastRow As Long
     
        Set ShGrLvr = ThisWorkbook.Worksheets("Grand livre")
        Set ShMsq = ThisWorkbook.Worksheets("40120")
        Set RgData = ShGrLvr.Range("TablGrLivre[#All]")
        Set RgCriter = ShGrLvr.Range("TablCritere[#All]")
        DerLig = ShGrLvr.Cells(ShGrLvr.Rows.Count, 1).End(xlUp).Row
        LastRow = ShMsq.Cells(ShMsq.Rows.Count, 1).End(xlUp).Row + 1
     
        RgData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=RgCriter, CopyToRange:=ShMsq.Cells(LastRow, 1)
        ShMsq.Rows(LastRow & ":" & LastRow).Delete Shift:=xlUp
     
        Application.CutCopyMode = False
     
     End Sub
    Svp j'ai deux questions
    1- est ce que je peux copier sans l’entête

    Nom : Annotation 2020-06-27 011940.jpg
Affichages : 542
Taille : 60,9 Ko

    2- est ce que je peux coller les cellules copier dans la cellule A9 par exemple et sans écraser les cellule existant
    pour ce la j'ai essayer de modifier mon code et changer cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RgData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=RgCriter, CopyToRange:=ShMsq.Cells(LastRow, 1)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RgData.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=RgCriter, CopyToRange:=ShMsq.Cells(9, 1)
    et voila le message d'erreur

    Nom : Annotation 2020-06-27 012755.jpg
Affichages : 545
Taille : 38,9 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par iliesss Voir le message
    Bonjour,

    Il faut que le nom de vos champs soient strictement identiques à ceux de la base d'extraction. Ici Libelle, Debit et Credit n'ont pas la même syntaxe.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour répondre à la première question "1- est ce que je peux copier sans l’entête", non ce n'est pas possible.
    La zone d'exportation (cible) pour les filtres avancés doit être soit une cellule vide et alors toutes les colonnes sont exportées soit une ou plusieurs cellules qui contiennent les étiquettes de colonne de la zone source avec la même orthographe et dans un ordre quelconque.

    Donc une méthode pour ajouter des données à une liste existante, consiste à
    1. copier la ligne des titres de la feuille cible vers la ligne qui suit la dernière remplie
    2. on exporte avec la méthode AdvancedFilter en définissant comme zone cible cette dernière (argument CopyToRange)
    3. On supprime la plage CopyToRange
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Merci Pour Vos réponses
    donc les cellules copier avec AdvancedFilter sont toujours coller en dessous des anciens

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    donc les cellules copier avec AdvancedFilter sont toujours coller en dessous des anciens
    Mais pas du tout.
    J'ai donné une astuce par rapport à l'image affichée à l'ouverture de la discussion.
    Il est évident qu'il est parfaitement possible d'exporter dans la même zone d'exportation mais alors les lignes du dessous s'efface.
    La méthode AdvancedFilter c'est le filtre avancé d'excel. Faites vos tests manuellement et vous verrez

    Voir l'Exemple d'une consultation des mouvements de stock avec la méthode AdvancedFilter ayant un tableau structuré comme source

    Pour en savoir plus sur les filtres avancés, je conseille la lecture de ce tutoriel Les filtres avancés ou élaborés dans Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour à tous

    Si la source garde ses lignes et si la cible n'est pas sensée être modifiée (en dehors de l'ajout éventuel d'une ou 2 colonnes) préférer une requête PowerQuery
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    l'image affichée à l'ouverture de la discussion c'est une partie du code
    la ligne N°15 supprime L’entêté

  8. #8
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour à tous

    Si la source garde ses lignes et si la cible n'est pas sensée être modifiée (en dehors de l'ajout éventuel d'une ou 2 colonnes) préférer une requête PowerQuery
    bonjour Mr chris
    je n'ai pas une idée a propos PowerQuery Svp donner moi un exemple ou une solution

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    l'image affichée à l'ouverture de la discussion c'est une partie du code
    la ligne N°15 supprime L’entêté
    Avez-vous été consulter les liens proposés ?
    J'utilise tous les jours la méthode AdvancedFilter soit sur la même ligne pour supprimer l'exportation précédente soit pour ajouter à une liste existante et je n'ai aucun soucis. Il faut juste comprendre la manière dont travaille le filtre avancé
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    RE à tous

    Citation Envoyé par iliesss Voir le message
    bonjour Mr chris
    je n'ai pas une idée a propos PowerQuery Svp donner moi un exemple ou une solution
    Je peux te montrer sur ton fichier : poste en exemple représentatif
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  11. #11
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    bonjour
    voici mon fichier demo
    et merci beaucoup
    Fichiers attachés Fichiers attachés

  12. #12
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    On peut avec PowerQuery récupérer le contenu du tableau TablGrLivre puis créer autant de requêtes que de Comptes et afficher chacune dans un onglet

    1. Soit cette démultiplication des onglets et Requêtes est manuelle et une simple actualisation est nécessaire pour que la ventilation tienne compte du contenu de TablGrLivre
    2. soit on peut piloter PowerQuery en VBA pour
      • genérer la liste des comptes
      • vérifier pour chaque compte si l'onglet correspondant existe
      • dans la négative créer l'onglet et la requête correspondants
      • actualiser toutes les requêtes


    Ci-joint le classeur correspondant à l'hypothèse 1

    J'ai mis ton code en commentaire : ne reste qu'une Sub pour actualiser
    Fichiers attachés Fichiers attachés
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  13. #13
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Joli exemple Chris.

    J'ajouterais que power query est bien plus simple à mettre en place que Vba, du moins pour les moins initiés.

    Lorsque l'on sait exploiter, l'automatisation PwQr par VBA, Excel performe pour le traitement ETL, avec comme avantage de pouvoir piloter aisément toute la suite office, pour faire des mailing (Outlook) , publipostage (Word) , diapo (ppt), via le visual basic,...

    Le tout sans devoir utiliser de programmes tiers, souvent honereux , demandant des surcouts pour mise à jours/ option supplémentaires, et pour lesquels des droits admin sont nécessaires.
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  14. #14
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Merci Mr Chris
    j'ai essayé de suivre votre hypothèse N°1 mais je n'ai trouver PowerQuery dans mon office 365 proplus

    Nom : Annotation 2020-06-28 155707.jpg
Affichages : 510
Taille : 39,7 Ko

    je vais le télécharger maintenant

  15. #15
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    RE

    Ce n'est pas un complément c'est totalement intégré à Excel 2016+, donc rien a installer
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  16. #16
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par 78chris Voir le message
    RE

    Ce n'est pas un complément c'est totalement intégré à Excel 2016+, donc rien a installer
    Salut
    Mais ou je vais trouvé menu power query

  17. #17
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Je suis vraiment.........
    C'est bon j'ai trouvé power Query
    C'est dans onglé data

  18. #18
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    salut
    merci Mr Chris
    c'est la première fois que j'utiliser le power query et j'ai beaucoup manipuler les table et enfin je me trouve dans cette situation
    maintenant comment affecter chaque table a sa feuil
    Nom : Annotation 2020-06-28 231230.jpg
Affichages : 510
Taille : 50,2 Ko

    je pense que la deuxième hypothèse plus rapide et très automatiser car mon grand livre contient beaucoup de comptes et beaucoup d'enregistrements.

    au début je vais commencer de générer la liste des comptes et qu'elle est la méthode la plus rapide ?

    Svp orienter moi pour beaucoup mieux avance

  19. #19
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 417
    Points : 16 260
    Points
    16 260
    Par défaut
    Bonjour

    Il peut être nécessaire d'ajouter quelques contrôles: là on contrôle seulement que la feuille n'existe pas avant de créer l'onglet et la requête

    La liste des compte est généré par requête et se trouve dans le 1er onglet : tu peux déplacer sur un autre onglet mais pas supprimer
    Fichiers attachés Fichiers attachés
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  20. #20
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Bonjour
    Bonsoir Mr Chris
    Merci pour votre message et pour le code
    j'ai passer beaucoup de temps pour comprendre comment le code fonction
    Et maintenant je vais ajouter quelque modification et améliorer la vitesse d'exécution du code sans modifier vos conseils

    - générer la liste des comptes
    - vérifier pour chaque compte si l'onglet correspondant existe
    - dans la négative créer l'onglet et la requête correspondants
    - actualiser toutes les requêtes

    Et a al fin je vais vous monter mon travail et a vous de noter

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2013] copie coller avec son userform
    Par jo50160 dans le forum Excel
    Réponses: 2
    Dernier message: 03/06/2014, 08h06
  2. Copie/coller avec un filtre
    Par mogo107 dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 17/06/2013, 11h36
  3. [XL-2007] Copie/coller avec mise en forme
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2013, 12h34
  4. [XL-2007] Copié-coller de ligne avec incrémentation
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2012, 22h16
  5. Réponses: 3
    Dernier message: 23/01/2010, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo