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 fil
je partage l'avis de marcel32, toute la question tourne autour de la disparition de l'userform dans la procédure, ce qui ne devrais pas être le cas avec le activate.
la temporisation n'a de raison que de laisser le temps (citation de mutzik ceci pour expliquer à l'utilisateur ce qui se passe et le faire patienter ), mais la question où est l'userform ?
et là je n'ai pas de réponse
cordialement
galougalou
 

patricktoulon

XLDnaute Barbatruc
re
@mapomme le msgbox s'affiche avant uf1 et if2
cela dit perso ça me gêne pas 2007 j'ai pas de latence mémoire pour le repaint comme sur 2016 et un peu moins 2013 mais pour ce qui sont sur ces versions ça peut troubler le repaint si la macro est lourde

une autre solution que j'applique moi même sur 2013 a cause de cette latence justement
c'est transformer la sub en fonction même si elle est lourde et
Private Sub UserForm_Activate()
dim x
x=mafonctionexterne
End Sub

ainsi l’événement n'est pas relâché tant que x n'a pas sa réponse ;)
 

job75

XLDnaute Barbatruc
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.
C'est curieux car chez moi sur Excel 2019 la MsgBox apparaît sur l'UserForm après son affichage.

Fichier joint, si ça ne va pas chez vous essayez en non modal avec UserForm1.Show 0

Salut mapomme, toi aussi c'est après, quelle est ta version ?
 

Pièces jointes

  • USF(1).xlsm
    19.1 KB · Affichages: 13
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
C'est curieux car chez moi sur Excel 2019 la MsgBox apparaît sur l'UserForm après son affichage.
Je n'ai pas dit le contraire. D'autant que je n'avais pas testé.

Je ne faisais que demander :
- des explications sur le fonctionnement de la chose,
- la différence par rapport à un appel à la macro après l'ouverture du UserForm comme cela se fait normalement, dans le Activate.
 

patricktoulon

XLDnaute Barbatruc
1° je lance l'usf
2° le userform commence a s'afficher
3° le msgbox aussi DEVANT!!! le usf
4° le msgbox est affiché le userform pas encore fini
5° les deux sont affichés

Sub USF()
Application.OnTime 1, "MaMacro"'ce qui revient a le lancer avant l'userform
UserForm1.Show
End Sub

Sub MaMacro()
MsgBox "Bonjour"
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
une autre solution que j'applique moi même sur 2013 a cause de cette latence justement
c'est transformer la sub en fonction même si elle est lourde et
Private Sub UserForm_Activate()
dim x
x=mafonctionexterne
End Sub

il me semble, a long time ago, que j'avais voulu remplacer une certaine Sub par une Function. J'avais échoué car certaines actions ou interactions avec Excel sont interdites dans une function. Mais pas moyen de me souvenir de ce que c'était.
 

patricktoulon

XLDnaute Barbatruc
ne pas oublier que pour nos demo la sub envoie un msgbox mais dans l’éventualité de travail en boucle et meme a l'oeil nu on voit bien le décalage en terme de temps
j'ai testé un travail sur cells bien pourri est lourd et l'userform reste tous gris est vide jusqu’à la fin de la macro avec le model de job75
avec mon model dans le activate pas de soucis
 

Discussions similaires

Statistiques des forums

Discussions
312 323
Messages
2 087 301
Membres
103 512
dernier inscrit
sisi235