VBA-Quelle propriété pour Userform réutilisé?

Résolu/Fermé
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 - 9 août 2010 à 13:39
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 - 9 août 2010 à 14:09
Bonjour,

J'utilise VBA avec office Excel 2007 sur 3 feuilles dans un même classeur.

J'execute des contrôles sur un tableau de clients, et effectue des modifications sur celui ci, après en avoir affiché les informations sur un userform.

Ce userform fait apparaitre des informations selon des conditions bien spécifiques, puis propose des actions.

Après ces actions effectuées, et après re-contrôle, le userform réapparaît s'il y a eu plusieurs informations erronnées (une action est traitée à la fois).

J'aimerais savoir comment je peux configurer mon userform pour qu'il réeffectue tous les contrôles à l'activation, sachant que je ne peux pas le Unload. Le activate ne fonctionne que la première fois...

Merci beaucoup :)

2 réponses

Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
9 août 2010 à 13:48
tu as 2 type d'évenement sur une userform

Intialize = qui ne s'éxécute qu'une fois a la création de la fenetre
Activate = qui s'éxécute chaque fois que la fenetre gagne le focus après avoir été masquée

dans le cas ou ton formulaire s'appelle toto, cela donne
Private Sub toto_Activate()

End Sub

Private Sub toto_Initialize()

End Sub


tu mets le code qu'il faut dans la procédure xxx_Activate(), chaque fois que ta fenetre apparait ce code s'exécutera
0
lml-mike Messages postés 453 Date d'inscription vendredi 16 février 2007 Statut Contributeur Dernière intervention 18 novembre 2018 120
9 août 2010 à 14:09
J'ai pu résoudre mon problème qui ne vient pas de l'activate mais du message d'erreur.
Les évènements suivants restaient affichés malgré la réouverture suite a un userform.hide :

Private Sub UserForm_activate()


erreur1 = NouveauClient.erreur1
erreur2 = NouveauClient.erreur2
erreur3 = NouveauClient.erreur3

nomclient = NouveauClient.nom_client.Value

If erreur1 <> "" Then
    erreur_1.Visible = True
    erreur_1b.Visible = True
    valeur1.Visible = True
    ReprendreCarte.Enabled = True
    ReprendreCarte.Visible = True
    valeur1.Value = erreur1
End If
If erreur2 <> "" Then
    erreur_2.Visible = True
    valeur2.Visible = True
    ReprendreCarte.Enabled = True
    ReprendreCarte.Visible = True
    valeur2.Value = erreur2
End If
If erreur3 <> "" Then
    erreur_3.Visible = True
    erreur_3b.Visible = True
    valeur3.Visible = True
    dettesPayées.Enabled = True
    dettesPayées.Visible = True
    valeur3.Value = erreur3
End If

End Sub


Mon problème était que je corrigeais mon erreur mais sans réinitialiser les variables d'erreur à "" . Normal qu'elles soient réaffichées :D

Merci beaucoup !
0