lolo38550
Messages postés30Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention12 janvier 2010
-
28 juil. 2006 à 09:25
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
28 juil. 2006 à 19:59
Bonjour à tous,
J'ai besoin d'un coup de main car j'ai un trou de mémoire. J'avais trouvée une instruction permettant lors de l'écution d'une macro excel, de ne voir que le résultat final, toutes les manipulation du classeur (changement de page active, effacement...) n'était pas visible. Le problème, c'est que j'ai oubliée cette instruction et l'endroit où je l'avais trouvé. En fait, si je n'ai pas les bonnes réponse sous google, c'est que je ne dois pas lui poser les bonnes questions mais j'ai essayer plusieurs mots-clés... en vain.
Donc s'il quelqu'un connaît cette instruction, ça serait super sympa!!
Merci d'avance
A voir également:
Barre de progression pendant l'exécution d'une macro
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 28 juil. 2006 à 19:59
Humm Drikce t'a donné la réponse !
ScreenUpdating, propriété
Cette propriété a la valeur True si la mise à jour de
l'écran est activée. Type de données Boolean en
lecture-écriture.
Notes
Désactivez la mise à jour de l'écran pour accélérer l'exécution du code de
votre macro. Vous ne pourrez suivre le déroulement de la macro mais en revanche
celle-ci sera exécutée plus rapidement.
N'oubliez pas d'affecter de nouveau la valeur True à la
propriété ScreenUpdating à la fin de la macro.
Exemple
Cet exemple démontre combien la désactivation de la mise à jour de l'écran
peut accélérer l'exécution du code de votre macro. L'exemple montre comment
masquer une colonne sur deux de la feuille Sheet1 tout en notant le temps mis
pour effectuer cette opération. La première fois que l'exemple masque les
colonnes, la mise à jour de l'écran est activée ; la seconde fois, elle est
désactivée. Lancez cet exemple et comparez les durées affichées dans le
message.
Dim elapsedTime(2)
Application.ScreenUpdating = True
For i = 1 To 2 If i 2 Then Application. ScreenUpdating False
startTime = Time
Worksheets("Sheet1").Activate
For Each c In ActiveSheet.Columns
If c.Column Mod 2 = 0 Then
c.Hidden = True
End If
Next c
stopTime = Time
elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60
Next i
Application. ScreenUpdating = True
MsgBox "Elapsed time, screen updating on: " & elapsedTime(1) & _
" sec." & Chr(13) & _
"Elapsed time, screen updating off: " & elapsedTime(2) & _
" sec."
@++
Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 28 juil. 2006 à 13:35
Est-ce que ce n'est pas parceque tu as fait une macro avec l'assistant ? Si tu codes toutes les manip en VB, tu n'auras pas ce problème. C'est le contraire, il faut lui demander pour afficher l'évolution du code.
lolo38550
Messages postés30Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention12 janvier 2010 28 juil. 2006 à 13:59
Salut Try_yann!
Non, c'est du code VB "made in moi" !! Lorsque dans mon code j'ai besoin d'une info se trouvant dans un autre classeur, il faut que je l'active. Et quand j'exécute la macro, je "vois" les traitements en directs: les pages courantes qui changent, les calculs,etc. Je ne sais pas si j'ai été très clair...
Et ce que j'aimerai c'est que le raffraichissment de mon classeur ne se fasse qu'une fois toutes les procédures éxécutées.