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 :

macro copier/coller tableau : amélioration du code [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 11
    Par défaut macro copier/coller tableau : amélioration du code
    Bonjour à tous,

    Encore une fois merci pour la richesse de ce forum.
    Je vous explique mon cas avant de donner mon code :

    Je veux, à partir d'un classeur "1", cliquer sur un bouton et :
    - ouvrir un autre classeur "2"
    - placer un filtre sur un tableau
    - filtrer deux colonnes
    - copier le tableau en entier (solution choisie : usedrange + copy)
    - le coller dans la feuille "Dépose Extraction" dans le classeur "1"

    Mon problème : erreur 1004 lié à la fameuse zone de forme et de taille identique.

    Existe-t-il une méthode ou une solution pour passer à travers ce problème ?
    J'ai cherché sur de nombreux forums sans trouver, sûrement faute d'utiliser les bons mots clés (débutant VBA).

    Le code :
    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
     
    Sub extractionautotest()
     
    'ouverture du fichiers'
    Application.Workbooks.Open "R:\..."
     
    'mise en place des filtres'
    Range("A5").AutoFilter Field:=2, Criteria1:="VS"
    Range("A5").AutoFilter Field:=11, Criteria1:="ASW"
     
    'copie du tableau filtré'
    ActiveSheet.UsedRange.Copy (Workbooks(1).Worksheets("Dépose Extraction"))
     
    'copie qui coince'
    ActiveSheet.UsedRange.Copy
    Workbooks(1).Sheets("Dépose Extraction").Paste Destination:=Range("A1")
     
    End Sub
    Merci à l'avance pour vos conseils. N'hésitez pas à critiquer la logique de la procédure si un système plus efficace existe.

    Cordialement,

    Guillaume

  2. #2
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 11
    Par défaut
    Après quelques essais j'arrive à un code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Cells.Copy
    Workbooks(1).Sheets("Dépose Extraction").Activate
    Sheets("Dépose Extraction").Range("A1").Select
    ActiveSheet.Paste
    Mais normalement il faut éviter les .select dans le code. Malheureusement je n'arrive pas à faire autrement... Si quelqu'un veut m'aider je l'invite à me contacter directement en MP, je clos le sujet dans 5 min étant donné que j'ai quand même la solution à mon problème.

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

Discussions similaires

  1. macro copier coller une ligne d'un tableau dans une autre feuille
    Par sonichou dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/07/2011, 22h13
  2. [PPT-2003] Macro : copier coller graphiques/tableau Excel-Ppt
    Par gandalf20000000 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 21/04/2010, 16h12
  3. Macro copier/coller avec tri
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2008, 12h44
  4. Macro copier coller première cellule vide
    Par jul85 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/02/2008, 17h06
  5. Macro copier/coller colonne- insérer nouvelle colonne
    Par rembliec dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2007, 16h32

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