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 :

copier/coller de colonnes très longues


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2012
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 10
    Par défaut copier/coller de colonnes très longues
    Bonjour,

    Vos conseils m'ont toujours aidé donc je reviens vers vous encore une fois.

    J'ai une feuille de mon classeur qui contient une très grosse base (200 000 lignes de 10 colonnes).
    J'utilise une deuxième feuille pour réorganiser et transformer cette base. Une macro me copie colle les colonnes C D et F par exemple, et les autres colonnes de cette nouvelle feuille contiennent des RECHERCHEV associés aux cellules des collones de ma première feuille, donc en gros la macro ne touche pas à ces colonnes qui se mettent à jour toutes seules.

    Mon problème est que le travail de cette macro dure 15 minutes (100 fois plus long que si je le faisai à la main).

    Voila la procédure que j'utilise pour chaque colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim l As Long
     
        l = Sheets("base").Cells(3, 3).End(xlDown).Row
     
        Range(Sheets("base").Cells(2, 8), Sheets("base").Cells(l, 8)).Copy
     
        Sheets("Récap sorties").Range("H4").Select
          Selection.pasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
    (J'utilise donc un copier coller en valeurs)

    Le tout est très très long et j'attend des idées qui pourraient me permettre d'améliorer le process...

    Merci d'avance,

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Première chose: Eviter les Select et Selection.

    Ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Sheets("Récap sorties").Range("H4").Select
          Selection.pasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
    peut être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Sheets("Récap sorties").Range("H4").pasteSpecial Paste:=xlPasteValues
    Ensuite, tu peux fortement accélérer le processus en désactivant les mises à jour d'écran et les calculs en début de procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual
    et les réactiver à la fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Application.ScreenUpdating = True
      Application.Calculation = xlCalculationAutomatic
    J'espère que ceci t'aidera et que tu viendras nous dire le résultat.
    Plusieurs de tes discussions se terminent sans nouvelles de ta part...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. copier /coller une colonne dans un fichier excel
    Par fboss dans le forum VB.NET
    Réponses: 0
    Dernier message: 13/11/2009, 13h33
  2. Copier/coller une colonne dans une table.
    Par moonwar dans le forum Débuter
    Réponses: 2
    Dernier message: 25/10/2009, 18h23
  3. copier / coller une colonne
    Par jmlb35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/06/2008, 22h10
  4. copier coller des colonnes dans le désordre
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2008, 19h24
  5. [Excel] Copier / Coller de colonne
    Par trihanhcie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/02/2007, 17h53

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