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 :

Simplification de code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut Simplification de code
    Bonjour,

    J'ai réalisé la macro suivante, qui fonctionne etc.... Cependant, je me rends compte que mon code pourrait surement être simplifié, ainsi j'aurais aimé avoir des avis sur comment améliorer cette présentation, voire des exemples d'amélioration de mon code, des conseils en bref.

    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
    Sub Jambon()
    Sheets(6).Cells.Select
    Selection.Delete
    Sheets(3).Select
    i = Range("A65436").End(xlUp).Row
    Range("BB250:BM253").Select
        Selection.AutoFill Destination:=Range("BB250:BM" & i), Type:=xlFillDefault
    Range("BB65230:BM" & i + 1).Delete
    Sheets(2).Select
    i = Range("A65436").End(xlUp).Row
    Range("M250:X253").Select
        Selection.AutoFill Destination:=Range("M250:X" & i), Type:=xlFillDefault
    Range("M65230:X" & i + 1).Delete
    Sheets(2).Select
        Range("M1:R1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets(6).Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Sheets(2).Select
            Range("S2:X2").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
            Sheets(6).Select
            Range("A65536").End(xlUp).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets(3).Select
        Range("BB2:BG2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets(6).Select
        Range("A65536").End(xlUp).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Sheets(3).Select
            Range("BH2:BM2").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
            Sheets(6).Select
            Range("A65536").End(xlUp).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets(6).Range("B4").Select
    Sheets(5).PivotTables("PivotTable41").PivotCache.Refresh
    Sheets(5).Name = "Jambon" & Chr(32) & Format(Date, "yyyymmdd")
    End Sub
    Merci d'avance,


  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Évite les Select, tu peux t'en passer en gagnant le temps d'exécution du code
    pour le début
    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
    Sub Jambon()
    Dim i As Long
    application.screenupdating=false
    Sheets(6).Cells.Clear
    With Sheets(3)
        i = .Cells(Rows.Count, "A").End(xlUp).Row
        .Range("BB250:BM253").AutoFill Destination:=.Range("BB250:BM" & i)
        .Rows(i + 1 & ":" & Rows.Count).Clear
    End With
    With Sheets(2)
        i = .Cells(Rows.Count, "A").End(xlUp).Row
        .Range("M250:X253").AutoFill Destination:=.Range("M250:X" & i)
    '.....suite
    End With
    '...suite
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 74
    Par défaut
    Merci d'avoir pris le temps de m'aider à progresser, j'apprécie!!!

Discussions similaires

  1. Simplification de code
    Par lodan dans le forum Langage
    Réponses: 4
    Dernier message: 20/09/2006, 19h28
  2. Simplification de code
    Par lodan dans le forum Langage
    Réponses: 2
    Dernier message: 31/08/2006, 21h51
  3. Simplification de code (suite)
    Par Jeffboj dans le forum Access
    Réponses: 1
    Dernier message: 12/04/2006, 22h34
  4. simplification de code
    Par Jeffboj dans le forum Access
    Réponses: 11
    Dernier message: 11/04/2006, 15h09
  5. [c#] Simplification de code
    Par Revan012 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/02/2006, 16h44

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