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 :

Lenteur d'un bout de code


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
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut Lenteur d'un bout de code
    Bonjour,

    J'ai un bout de macro qui me semble long à s'exécuter, plus de 10 secondes...

    Avez-vous une idée de comment faire pour réduire ce temps ?

    Pour information, je refait plusieurs fois les copier coller, car j'ai des cellules fusionnées... Et donc le copier coller ne fonctionne pas si on prends d'autres cellules.

    Merci d'avance. Car 10 secondes, c'est vraiment long d'autant que j'ai déjà supprimé des parties de 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
    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 modifier()
    Application.ScreenUpdating = False
    If Feuil11.Cells(1, 9).Value <> "" Then
    sortie = True
    Feuil12.Select
    'copie du bloc 1 & 2
    Feuil11.Range("b2:h29").Copy
    Feuil12.Range("b2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie du bloc 3
    Feuil11.Range("i1:l6").Copy
    Feuil12.Range("i1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie de la case fusionnée du bloc 3
    Range("j7").Copy
    Feuil12.Range("j7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie du bloc 3 suite
    Feuil11.Range("j11:l18").Copy
    Feuil12.Range("j10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie de la case fusionnée du bloc 3
    Feuil11.Range("j19").Copy
    Feuil12.Range("j19").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie du bloc 3 fin
    Feuil11.Range("j21:l26").Copy
    Feuil12.Range("ji21").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'copie de la dernière case fusionnée du bloc 3
    Feuil11.Range("j27").Copy
    Feuil12.Range("j27").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
     
    'n°id
    Feuil12.Cells(50, 1).Value = Feuil12.Cells(9, 1).Value
    sortie = False
     
    Else
    Z = MsgBox("Il manque le n° ID de cette fiche. Merci de la reselectionner", vbCritical, "Erreur")
    Feuil1.Select
    End If
     
    Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt,
    plutot que copier coller tu peux essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil12.Range("b2").Value = Feuil11.Range("b2:h29").Value

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Merci pour ta réponse.

    Par contre, cette méthode ne copie/colle que b2 et pas les autres cases...

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut cardinault et le forum
    élague déjà ce qui ne sert à rien (comme sortie)
    Essaie aussi de réduire ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, skipBlanks:=False, Transpose:=False
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PasteSpecial Paste:=xlPasteValues
    Mais je ne suis pas sûr que ça face autre chose que rendre plus lisible.
    Essaie de fermer Excel puis de relancer ton micro, ça aide, des fois.
    A+

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Re,
    Par contre, cette méthode ne copie/colle que b2 et pas les autres cases...
    ben oui c'était pour te montrer maintenant il faut faire la même chose avec les autres cases .

  6. #6
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil12.Range("b2:h29").Value = Feuil11.Range("b2:h29").Value

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Par défaut
    Je t'adore sabzzz !

    Plus besoin de me faire ... avec les cellules fusionnées. Tout est directement copié !

    Merci encore.

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

Discussions similaires

  1. la sauvegarde des bouts de code ?
    Par blackhorus dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/10/2005, 13h34
  2. [XML][XSL] déplacer bout de code XML
    Par majanissa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 14/09/2005, 17h17
  3. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  4. bout de code à dechifrer svp
    Par bball dans le forum C
    Réponses: 32
    Dernier message: 20/01/2005, 23h23

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