VBA : ScreenUpdating + bouton shape

Résolu/Fermé
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 - 17 déc. 2013 à 11:33
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 - 20 déc. 2013 à 10:01
Bonjour a tous,

Tout d'abord, veuillez m'excuser pour les accents qui ne seront pas presents car j'ecris depuis un clavier QWERTY :).

Ensuite, voila ma question :

J'ai une macro VBA. Lorsque je l'utilise, je voudrais faire apparaitre un messsage d'attente tout en desactivant l'affichage avec screenupdating. Avec un bout de code vous comprendrez mieux je pense :

Sheets("Form1").Shapes("Wait").Visible = True
Application.ScreenUpdating = False
'macro
Application.ScreenUpdating = True
Sheets("Form1").Shapes("Wait").Visible = False

Logiquement, le bouton devrait apparaitre avant que l'ecran soit fige. Or, ce n'est pas le cas. J'ai cherche sur differents sites mais je n'ai pas encore trouve de reponse a ma question.

En vous remerciant par avance,

Tchy

3 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 950
17 déc. 2013 à 12:28
Salut le Forum

Essaye en insérant un DoEvents

Sheets("Form1").Shapes("Wait").Visible = True 
DoEvents
Application.ScreenUpdating = False

Mytå
0
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 2
17 déc. 2013 à 12:34
Salut et merci de ta reponse. Seulement j'ai toujours le meme soucis.

Quand je mets la ligne "Application.ScreenUpdating = False" en commentaire le bouton apparait et des que je l'active a nouveau le bouton n'est plus visible.
0
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 2
17 déc. 2013 à 12:40
Je viens re repondre a ta reponse Myta. Ca fonctionne en fait en inserant le DoEvents. C'est juste que ma macro s'executait trop vite pour qu'il apparaisse.

Je te remercie enormement je vais voir exactement ce a quoi correspond ce fameux "DoEvents".

Merci encore
0
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 2
17 déc. 2013 à 13:05
Encore une fois me revoila.

Alors effectivement le DoEvents fonctionne mais pas tout le temps. Je m'explique :

Lorsque je suis sur VBA et que j'appuie sur F5 alors la ca fonctionne correctement.

Seulement, quand je suis dans mon tableur et que j'appuie sur mon bouton la ca ne fonctionne pas. J'ai toujours le meme probleme.

Desole de ces messages a repetition...
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 950
Modifié par Mytå le 17/12/2013 à 23:33
Re le Forum

Rajoute un délai d'une seconde avant le DoEvents

Application.Wait Time + TimeSerial(0, 0, 1) 
Mytå
0
tchitchy Messages postés 42 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 22 avril 2022 2
20 déc. 2013 à 10:01
Coucou Mytå,

Desole de la reponse tardive mais je ne travaille qu'a mi-temps pour cette boite.

J'ai essaye ta solution et effectivement probleme resolu. Ca fonctionne parfaitement je t'en remercie.

Bonne continuation a toi l'ami.

Je place le sujet en resolu
0