lancer macro après affichage userform

mutzik

XLDnaute Barbatruc
Bonjour à toutes et tous,

2 jours que je cherche, ici et ailleurs ...
tout est dans le titre, après que mon userform soit affiché, je voudrais qu'une macro se déclenche automatiquement

j'ai essayé dans le activate, mais la macro s'execute avant l'affichage et je souhaiterai l'inverse, ceci pour expliquer à l'utilisateur ce qui se passe et le faire patienter

Merci à vous
 

GALOUGALOU

XLDnaute Accro
bonjour le forum bonjour le fil
avec l'activate la macro s'exécute en même temps que l'affichage. (moins sur, pour initialize)
une idée comme ça. pour une temporisation, pourquoi ne pas interposer avant la macro une msgbox
cordialement galougalou
 

mutzik

XLDnaute Barbatruc
Bonjour job75, Marcel32, GALOUGALOU

Tu as encore une fois réponse à ce que je demande, job, mais pour ma culture perso :
ontime 1 = 1sec après que le show du userform soit executé ?

et merci Marcel32 et GALOUGALOU
 

patricktoulon

XLDnaute Barbatruc
bonjour
@job75 si du code est exécute dans le activate et bug et que la macro est en corrélation avec ce qui est fait dans le activate ça fait un paquet de nœuds de la programmer avant

le le app.ontime dans le activate et juste avant le end sub ;)

VB:
Private Sub UserForm_Activate()
'ton code qui doit etre executé ici
'
'et enfin
Application.OnTime Now + 0.00001, "roule_ma_poule"
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
@job75 par ce que ça peut arriver
et la macro doit être lancée après le activate si ton pc rame pour une raison ou une autre ton 1 fera pas la différence si le userform est affiché avec son repaint correctement et entièrement appliqué
d'ailleurs chez moi ton code affiche le msgbox avant le userform
 

TooFatBoy

XLDnaute Barbatruc
Bon, comme d'hab je vais squatter quelques instants le fil pour essayer d'en apprendre un peu plus sur Excel...

Ça change quoi de mettre Application.OnTime 1, ???
VB:
Sub USF()
    Application.OnTime 1, "MaMacro"
    UserForm1.Show
End Sub

Si on ne le met pas, la macro est quand même exécutée avant d'afficher le formulaire. Non ?
VB:
Sub USF()
    Call MaMacro
    UserForm1.Show
End Sub

De plus, il me semble que ça lance la macro avant d'afficher le formulaire alors que la demande était de lancer la macro après l'affichage du formulaire.

Bref, avec mes immenses connaissances en Excel et VBA... je ne pige pas.
Pourrais-tu, s'il te plait Job, me donner quelques explications claires ?
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Bonsoir à tous,

Et comme cela, sans OnTime, ça marche ou ça marche pas ?
VB:
Private Sub UserForm_Activate()
Static Fait As Boolean
   If Not Fait Then Fait = True: maMacroExterne
End Sub

V1 sans tempo dans UserForm_Initialize
V2 avec tempo dans UserForm_Initialize pour simuler une longue initialisation
 

Pièces jointes

  • mutzik- afficher puis macro- v1.xlsm
    23.8 KB · Affichages: 21
  • mutzik- afficher puis macro- v2.xlsm
    23.4 KB · Affichages: 14
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 123
Messages
2 116 458
Membres
112 748
dernier inscrit
Pboiusquet