lancer macro après affichage userform

  • Initiateur de la discussion Initiateur de la discussion mutzik
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
bonjour le fil
(windows10 64 bits office2010 64 bits
dans le code ci-dessous (activate) l'userform est présent du début à la fin
Enrichi (BBcode):
Private Sub UserForm_Activate()
MsgBox ("ouverture1")
Sheets("Feuil1").Select
MsgBox ("ouverture2")
Sheets("Feuil2").Select
MsgBox ("ouverture3")
Sheets("Feuil3").Select
MsgBox ("ouverture1")
Sheets("Feuil1").Select
End Sub

dans le code ci-dessous (initialize), l'userform n'apparait qu'a la fin de la procédure
Enrichi (BBcode):
Private Sub UserForm_Initialize()
MsgBox ("ouverture1")
Sheets("Feuil1").Select
MsgBox ("ouverture2")
Sheets("Feuil2").Select
MsgBox ("ouverture3")
Sheets("Feuil3").Select
MsgBox ("ouverture1")
Sheets("Feuil1").Select
End Sub

pour découvrir la problèmatique de mutzik, il serait souhaitable qu'il nous post son code.
cordialement
galougalou
 
Bonjour @patricktoulon, @job75, à tous,

Pouvez vous tester le fichier joint, s'il vous plait ?
  • J'ai constaté le phénomène décrit par @patricktoulon
  • Dans le fichier joint, j'ai rajouté un DoEvents qui apparemment fait que la fenêtre s'affiche bien avant la macro
  • Si on enlève le DoEvents, alors la fenêtre reste vierge jusqu'à la fin de la macro.
VB:
Private Sub UserForm_Activate()
Static Fait As Boolean
   If Not Fait Then Fait = True: DoEvents: maMacroInterne
End Sub

Merci de vos retours... 🙂
 

Pièces jointes

dans le code ci-dessous (activate) l'userform est présent du début à la fin
dans
le code ci-dessous (initialize), l'userform n'apparait qu'a la fin de la procédure
Oui, comme ça été dit plus haut, c'est normal : le formulaire ne s'affiche qu'à la fin du Initialize. 😉


pour découvrir la problèmatique de mutzik, il serait souhaitable qu'il nous post son code.
Effectivement, ce ne serait pas un luxe de savoir ce qui pose réellement problème. 😉
 
Je vois que mon problème déchaîne les passions

en fait, je fais une application excel qui, une fois le usf affiché va testé si je suis à mon travail, à mon domicile branché sur mon réseau ou en stand alone sans aucune connection réseau.
Dans les 3 cas je vais me connecter à une mdb access en DAO pour vérifier le login et le mot de passe .
En fonction de ces paramètres, cela va me donner un niveau d'accréditation me permettant de masquer des controles auxquels l'utilisateur n'aurait pas droit.

Ma MDB est cryptée par Vegenère modifié (par moi-même)
Voici le code qui fonctionne chez moi selon mon souhait

VB:
Private Sub UserForm_Initialize()
    proCs = Now & "  /  " & "UserForm_Initialize" & vbLf
    'Debug.Print proCs
   
    'ThisWorkbook.Application.Visible = False
    'cptLogins = 0     'compteur d'essais de login
    'si 4 = on ferme usf et on quitte l'appli sans sauvegarde
   
    'ResetCtrls        'en fonction du niveau d'accréditation
    Me.Caption = "VEHICULES"
    'enlever le cadre du USF
    lHwnd = FindWindowA(vbNullString, Me.Caption)
    AfficheTitleBarre Me.Caption, False
   
End Sub

Code:
Private Sub UserForm_Activate()
    proCs = proCs & Now & "  /  " & "UserForm_Activate" & vbLf
    'Debug.Print proCs
    Application.OnTime Now + 0.00001, "macrobd"
End Sub

dans un module standard
Code:
Sub LancerUSF_Cliquer()
usf_LoginAppli.Show
End Sub

Sub macrobd()
    usf_LoginAppli.lbl5_Msg = "recherche réseau ... en cours"
    DoEvents
    initAppli 'recherche si réseau dispo ou stand alone
    usf_LoginAppli.lbl5_Msg = "recherche réseau ... terminée"
    DoEvents
    'usf_LoginAppli.colorier        'colorie des boules de couleur en fonction du réseau'
    DoEvents
    usf_LoginAppli.BorderColor = 2
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
456
Réponses
2
Affichages
556
  • Question Question
Microsoft 365 VBS / Macro
Réponses
3
Affichages
1 K
Réponses
9
Affichages
2 K
Retour