J'ai une macro qui affecte une valeur à des cellules mais le processus
est très lent.
For i = 0 To NbrElem - 1
For j = 2 To NbrProjets + 1
If Cells(CriterLastLine + 1, j) = AbregList(i) Then
Cells(CriterLastLine + 2, j) = NoOrder
' NoOrder = NoOrder + 1
End If
Next
NoOrder = NoOrder + 1
Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour
pour 20 cellules.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Bonjour.
Application.ScreenUpdating = False
t'empêchera de les voir se remplir et accélèrera le processus. Tu peux
aussi essayer de mettre le calcul en mode manuel.
Cordialement.
Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est
très lent.
For i = 0 To NbrElem - 1
For j = 2 To NbrProjets + 1
If Cells(CriterLastLine + 1, j) = AbregList(i) Then
Cells(CriterLastLine + 2, j) = NoOrder
' NoOrder = NoOrder + 1
End If
Next
NoOrder = NoOrder + 1
Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour
20 cellules.
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Jacky
Bonsoir,
Essaie avec un "exit for" juste avant le End if
-- Salutations JJ
"defluc" a écrit dans le message de news:
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Bonsoir,
Essaie avec un "exit for" juste avant le End if
--
Salutations
JJ
"defluc" <defluc@scarlet.be> a écrit dans le message de news:
OLdWr037JHA.1764@TK2MSFTNGP06.phx.gbl...
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est
très lent.
For i = 0 To NbrElem - 1
For j = 2 To NbrProjets + 1
If Cells(CriterLastLine + 1, j) = AbregList(i) Then
Cells(CriterLastLine + 2, j) = NoOrder
' NoOrder = NoOrder + 1
End If
Next
NoOrder = NoOrder + 1
Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour
pour 20 cellules.
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
defluc
Daniel.C a écrit :
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde. Je savais bien que la désactivation de l'affichage accélérait l'exécution mais je n'avais plus l'instruction en mémoire. «ScreenUpdating» fait encore gagner 2 secondes.
Merci à tous
Daniel.C a écrit :
Bonjour.
Application.ScreenUpdating = False
t'empêchera de les voir se remplir et accélèrera le processus. Tu peux
aussi essayer de mettre le calcul en mode manuel.
Cordialement.
Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus
est très lent.
For i = 0 To NbrElem - 1
For j = 2 To NbrProjets + 1
If Cells(CriterLastLine + 1, j) = AbregList(i) Then
Cells(CriterLastLine + 2, j) = NoOrder
' NoOrder = NoOrder + 1
End If
Next
NoOrder = NoOrder + 1
Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour
pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde.
Je savais bien que la désactivation de l'affichage accélérait
l'exécution mais je n'avais plus l'instruction en mémoire.
«ScreenUpdating» fait encore gagner 2 secondes.
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde. Je savais bien que la désactivation de l'affichage accélérait l'exécution mais je n'avais plus l'instruction en mémoire. «ScreenUpdating» fait encore gagner 2 secondes.
Merci à tous
MichDenis
Bonjour Defluc,
Il y a toujours la désactivation des événements...si tu as des procédures événementielles dans ton fichiers.
En début de macro, tu écris :
Application.enableevents = false
En fin de macro : Application.enableevents = true
"defluc" a écrit dans le message de groupe de discussion :
Daniel.C a écrit :
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde. Je savais bien que la désactivation de l'affichage accélérait l'exécution mais je n'avais plus l'instruction en mémoire. «ScreenUpdating» fait encore gagner 2 secondes.
Merci à tous
Bonjour Defluc,
Il y a toujours la désactivation des événements...si tu as des procédures événementielles
dans ton fichiers.
En début de macro, tu écris :
Application.enableevents = false
En fin de macro :
Application.enableevents = true
"defluc" <defluc@scarlet.be> a écrit dans le message de groupe de discussion :
enyaBp47JHA.4404@TK2MSFTNGP04.phx.gbl...
Daniel.C a écrit :
Bonjour.
Application.ScreenUpdating = False
t'empêchera de les voir se remplir et accélèrera le processus. Tu peux
aussi essayer de mettre le calcul en mode manuel.
Cordialement.
Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus
est très lent.
For i = 0 To NbrElem - 1
For j = 2 To NbrProjets + 1
If Cells(CriterLastLine + 1, j) = AbregList(i) Then
Cells(CriterLastLine + 2, j) = NoOrder
' NoOrder = NoOrder + 1
End If
Next
NoOrder = NoOrder + 1
Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour
pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde.
Je savais bien que la désactivation de l'affichage accélérait
l'exécution mais je n'avais plus l'instruction en mémoire.
«ScreenUpdating» fait encore gagner 2 secondes.
Il y a toujours la désactivation des événements...si tu as des procédures événementielles dans ton fichiers.
En début de macro, tu écris :
Application.enableevents = false
En fin de macro : Application.enableevents = true
"defluc" a écrit dans le message de groupe de discussion :
Daniel.C a écrit :
Bonjour. Application.ScreenUpdating = False t'empêchera de les voir se remplir et accélèrera le processus. Tu peux aussi essayer de mettre le calcul en mode manuel. Cordialement. Daniel
Bonjour,
J'ai une macro qui affecte une valeur à des cellules mais le processus est très lent.
For i = 0 To NbrElem - 1 For j = 2 To NbrProjets + 1 If Cells(CriterLastLine + 1, j) = AbregList(i) Then Cells(CriterLastLine + 2, j) = NoOrder ' NoOrder = NoOrder + 1 End If Next NoOrder = NoOrder + 1 Next
Je vois les cellules se remplir une à une et cela dure 5 secondes pour pour 20 cellules.
Une idée pour accélérer le processus ?
Merci d'avance
Il y a très longtemps que je n'avais plus programmé de macro.
"exit for" fait gagner 1 seconde. Je savais bien que la désactivation de l'affichage accélérait l'exécution mais je n'avais plus l'instruction en mémoire. «ScreenUpdating» fait encore gagner 2 secondes.