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

Résolu
lml-mike Messages postés 449 Date d'inscription   Statut Contributeur Dernière intervention   -  
lml-mike Messages postés 449 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Krysstof Messages postés 1659 Statut Membre 295
     
    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
  2. lml-mike Messages postés 449 Date d'inscription   Statut Contributeur Dernière intervention   123
     
    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