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 :

Améliorer la rapidité d’exécution [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    ENSIAME
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : ENSIAME

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Par défaut Améliorer la rapidité d’exécution
    Bonjour à vous,

    Je débute un peu en VBA et j'aimerais sollicitez votre aide, pour m'éclairer sur un certain point.
    Alors voilà j'utilise un code pour copier des données d'une feuille vers une autre feuille mais cela prends un peu temps à l’exécution et je sais pas ce qu'il faut faire pour améliorer le temps d’exécution.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    Sub Copy_Finale()
     
    Application.ScreenUpdating = False
     
        Workbooks.Open Filename:= _
            "D:\Application.xlsm"
     
        Windows("Application.xlsm").Visible = False
     
    'N° Cas
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(1).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(1).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'Evénement
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(2).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(2).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'Jour
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(3).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(3).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'Pertes
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(4).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(4).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'N.I
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(16).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(5).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'CL
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(5).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(6).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'L
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(6).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(7).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'G1
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(9).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(8).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'GG1
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(19).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(9).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'G2
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(12).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(10).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'GG2
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(20).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(11).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'PK
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(15).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(12).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'GPK
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(21).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(13).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'C.i
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(17).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(14).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    'C.a
       Workbooks("Extraction_Beta.xlsm").Sheets("Traitement").Activate
       ActiveSheet.ListObjects("Tab_Trait").ListColumns(18).DataBodyRange.Select
       Selection.Copy
       Application.ScreenUpdating = False
       Workbooks("Application.xlsm").Worksheets("Exportation").ListObjects("Tab_Export").ListColumns(15).DataBodyRange.PasteSpecial Paste:=xlPasteValues
     
    Application.ScreenUpdating = True
     
    Windows("Application.xlsm").Visible = True
     
    Workbooks("Extraction_Beta.xlsm").Close
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    si il y a 15 colonne dans ton tableau pourquoi ne copy tu pas le tableau en entier

    et même si il y en a plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(nomtableau[[#all],[nom_premier_colonne_voulue]:[nom_derniere colonne_voulue]]).copy
    tu enleve le "[#all],"si tu tu dois le replacer dans un autre TS existant
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Candidat au Club
    Homme Profil pro
    ENSIAME
    Inscrit en
    Mai 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : ENSIAME

    Informations forums :
    Inscription : Mai 2019
    Messages : 2
    Par défaut Re
    Bonjour patrick,

    Merci pour ta réponse, mais dans mon cas je copie pas tout le tableau mais juste les colonnes dont j'ai besoin justement c'est pour ça qu'il y a une répétition importante dans mon code.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonsoir
    et alors moi non plus je copie pas tout le tableau
    je copie l'intervalle d'une colonne a une autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        With Range("Tableau1[[#all],[Colonne2]:[Colonne5]]")
            r = .Rows.Count
            c = .Columns.Count
            .Copy Destination:=Cells(12, "C").Resize(r, c)
            ActiveSheet.ListObjects.Add(xlSrcRange, Cells(12, "C").Resize(r, c), , xlYes).Name = "la_copie"
            ActiveSheet.ListObjects("la_copie").TableStyle = "TableStyleMedium2"
        End With
    End Sub
    Nom : demo2.gif
Affichages : 398
Taille : 198,9 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Améliorer la rapidité de mon code ?
    Par cdjkhdjlhxjklnjskznj dans le forum Langage
    Réponses: 9
    Dernier message: 21/07/2015, 09h06
  2. Amélioration requête rapidité
    Par fredaster31 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/10/2012, 14h27
  3. Améliorer la rapidité de mon appli ?
    Par Baboulinet_ dans le forum Général Java
    Réponses: 3
    Dernier message: 15/11/2011, 15h01
  4. Compression des pages pour améliorer la rapidité
    Par econo-ecolo dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 26/06/2009, 09h00
  5. Améliorer la rapidité
    Par psylox dans le forum Langage
    Réponses: 10
    Dernier message: 27/04/2007, 13h57

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