Macro invisible

O

Olivier

Guest
Bonjour à toutes et à tous et bonne année.

Est il possible de cacher les différentes opérations d'une macro pendant qu'ele s'exécute ?
Merci pour votre aide

@+
Olivier
 
T

Ti

Guest
question un peu vague...
Si tu ne veux pas qu'on voit ce qui se passe durant le déroulement tu peux mettre l'instruction
"Application.SreenUpdating = False" au début et "Application.SreenUpdating = true" à la fin de ta macro.
Si ce n'est pas ça que tu veux, précise mieux
 
@

@+Thierry

Guest
Bonsoir Olivier...

Pas sûr d'avoir bien compris le sens de ta question...

Je pense que tu veux dire est-il possible de figer l'écrazn pendant l'execution d'un procédure...

Si c'est çà, dans ce cas indique cette instruction en début de code :

Application.ScreenUpdating = False

et comme le précise l'aide "Remember to set the ScreenUpdating property back to True when your macro ends."

donc à la fin de ton code

Application.ScreenUpdating = True

Bonne Soirée
@+Thierry
 
T

Ti

Guest
oh là, si tu oublies cette deuxième ligne, tu vas avoir des gags un jour ou l'autre, en te demandant pourquoi telle macro ne marche pas alors que simplement tu ne verras pas le résultat du boulot effectué parce que les données n'auront pas été mises à jour.
 
O

Olivier

Guest
Merci beaucoup à Ti et à Thierry pour votre aide précieuse. Vous aviez bien compris ma question qui pourtant, c'est vrai, n'était pas formulée de manière explicite.
De plus, je suis heureux de voir que ma question a rendu service aussi à François au passage.
@+ les gars
Olivier
 
O

Olivier

Guest
Ma macro se déroule bien de manière invisible à l'écran maintenant mais que lorsque je l'active en tant que macro (Outils/macro/Exécuter...). Par contre si je la lance à partir d'une procédure par Call MaMacro(), elle s'exécute de nouveau de manière visible, c'est quoi ce truc ???
merci d'avance
@+
Olivier
 
@

@+Thierry

Guest
Bonjour Olivier,

Logiquement si tu veux utiliser l'instruction ScreenUpdating, on s'arrange pour placer la valeur False en tout début hiérachique de la chronologie de l'exécution des code....

Donc (sous réserve qu'il n'y ait pas d'autre macro encore en amont)... tu places çà au départ de la macro qui contient le code "call MaMacro2" et tu remets la valeur à True, à la fin du code de ma MaMacro2 (sous réserve qu'il n'y ait pas encore de macro en aval...)

Maintenant te dire pourquoi... je ne sais pas, il faudrait voir tes codes de plus près...
Mais bon, en VBA, plus on est logique mieux c'est....

@+Thierry
 
O

Olivier

Guest
Encore une fois, Thierry, tu as raison. Décidément tu as réponse à tout, tu m'énerves ;-)
ben ouais, il fallait que je mette mon "Application.ScreenUpdating = False" dès le début du code de ma UserForm d'où part toute une série de macro.
Encore merci pour ta générosité, ta rapidité, ta...oh oh oh pas trop non plus hein, c'est pas mon genre ;-)
@+
Olivier
 

Statistiques des forums

Discussions
314 653
Messages
2 111 575
Membres
111 205
dernier inscrit
Adrien25