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 :

Execution d'une macro est très lente


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut Execution d'une macro est très lente
    Bonjour

    J'ai lu cette discussion. J"ai aussi un problème de lenteur de déroulement du code d'un formulaire.
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    Chaque select provoque un événement!
    .Range("DataScrapCopy01").copy .Range("AG9") !

    Intéressés toi a formulaR1C1!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    range("A1:A123").formulaR1C1="=Sum(Rc[10]:Rc[15])"
    range("A1:A123").value=range("A1:A123").value
    une idée ?
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit 'oblige à déclarer toutes les variables
    Option Compare Text 'utilise le texte pour le classement alphabétique
    Dim Ws As Worksheet
     
     
    Private X As Byte 'déclare la variable x
    Private Y As Byte
    Private pl As Range 'déclare la variable pl (PLage)
    Private cel As Range 'déclare la variable cel (CELlule)
    Private nl As Long 'déclare la variable nl (Numéro de Lige)
    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
    Private Sub CommandButton1_Click()
    Dim dest As Range
    With Sheets("données")
        If nl = 0 Then
     
            Set dest = .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
        Else
            Set dest = .Cells(nl, 1)
        End If
    End With
    For X = 1 To 2
     
        dest.Offset(0, X).Value = Me.Controls("TextBox" & X + 1).Value
    Next X
     
    For X = 4 To 6
    dest.Offset(0, X).Value = Me.Controls("TextBox" & X + 1).Value
    Next X
     
    For X = 7 To 9
    dest.Offset(0, X).Value = Me.Controls("TextBox" & X + 1).Value
    Next X
     
     
    For X = 0 To 0
     
    If TextBox1.Value = "" Then
    MsgBox "Vous devez rentrer une date obligatoirement, par défaut, la date du jour sera indiquée."
        dest.Offset(0, X).Value = Format(Date, "dd/mm/yyyy")
          Else
           dest.Offset(0, X).Value = CDate(Me.TextBox1.Value)
    End If
     
    Next X
     
    For X = 3 To 3
     
    If TextBox4.Value = "" Then
          dest.Offset(0, X).Value = ""
          Else
           dest.Offset(0, X).Value = CDate(Me.TextBox4.Value)
    End If
     
    Next X
     
     
     
    Unload Me
    UserForm1.Show
    'ActiveWorkbook.save    'sauvegardeclasseur
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Je ne vois pas ce qui pourrait accélérer significativement ce code, sauf à inhiber (Application.screenUpdating = False) l'affichage puis à le rétablir (par = True)
    J'observe par contre de bien étranges "choses" :
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For X = 0 To 0
     
    If TextBox1.Value = "" Then
    MsgBox "Vous devez rentrer une date obligatoirement, par défaut, la date du jour sera indiquée."
        dest.Offset(0, X).Value = Format(Date, "dd/mm/yyyy")
          Else
           dest.Offset(0, X).Value = CDate(Me.TextBox1.Value)
    End If
     
    Next X
    n'est finalement rien d'autre que (tout simplement et sans boucle For) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If TextBox1.Value = "" Then
    MsgBox "Vous devez rentrer une date obligatoirement, par défaut, la date du jour sera indiquée."
        dest..Value = Format(Date, "dd/mm/yyyy")
          Else
           dest.Value = CDate(Me.TextBox1.Value)
    End If
    même type de remarque en ce qui concerne la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For X = 3 To 3
     
    If TextBox4.Value = "" Then
          dest.Offset(0, X).Value = ""
          Else
           dest.Offset(0, X).Value = CDate(Me.TextBox4.Value)
    End If
     
    Next X
    qui ne fait rien d'autre que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If TextBox4.Value = "" Then
          dest.Offset(0, 3).Value = ""
          Else
           dest.Offset(0, 3).Value = CDate(Me.TextBox4.Value)
    End If

Discussions similaires

  1. Execution d'une macro est très lente
    Par beautiful__nice dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2017, 18h04
  2. [2.x] symfony,ajax c'est très lent avec une route pour keyup
    Par cuscodkr dans le forum Symfony
    Réponses: 22
    Dernier message: 27/11/2015, 17h40
  3. [VBA-E]Execution d'une macro access sous excel VBA
    Par virtualinsanity dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 21/04/2006, 17h27
  4. [VBA-E]Pendant l'execution d'une macro
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/03/2006, 18h28
  5. execution d'une macro d'access sous delphi
    Par galendor_d'ambre dans le forum Bases de données
    Réponses: 6
    Dernier message: 10/02/2004, 15h58

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