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
(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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • mutzik- afficher puis macro- v3.xlsm
    24 KB · Affichages: 18

TooFatBoy

XLDnaute Barbatruc
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. ;)
 

mutzik

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia