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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    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 : 640
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 : 650
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
    13 175
    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 : 13 175
    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 éclairé
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    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
    13 175
    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 : 13 175
    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

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 566
    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 566
    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

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

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    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é

+ Répondre à la discussion
Cette discussion est résolue.

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