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