Réinitialisation apparence Userform

Salut les accros du VBA,

Je "m’amuse" un peu avec les Userform en ce moment. J'ai un UserForm qui va changer d'apparence suivant 3 configurations:

1 2 3

Tout bouge bien sauf que j'aimerai, quand je supprime le numéro et que la première case redevient vide, que la UserForm revienne à sa configuration d'origine. J'ai bidouillé ce code qui remet en manuel toutes les cases comme il faut mais c'est quand même rapidement lourd.. Je me demande s'il n'y a pas une formule toute faite du genre Clear qui réinitialise le Userform ? J'ai cherché et testé mais sans succès pour l'instant

Private Sub TextBoxNuméroDevis_Change()

    'Déclaration des variables
    Dim ColonneDevis As Object
    Dim Recherche As Object
    Dim Ligne As Long
    Dim Réponse As Integer

    'Recherche de la ligne devis
    Set ColonneDevis = Liste_DT.Columns("A")
    Set Recherche = ColonneDevis.Find(What:=TextBoxNuméroDevis)

    Label2.Visible = True
    Label3.Visible = True
    ComboBoxCatégorie.Visible = True
    ComboBoxDeviseur.Visible = True
    Label2.Top = 42
    Label3.Top = 66
    ComboBoxCatégorie.Top = 36
    ComboBoxDeviseur.Top = 60
    btnValider.Top = 90
    btnQuitter.Top = 90
    UserForm_Compléter_Devis.Height = 165

    If TextBoxNuméroDevis = "" Then
        Exit Sub
    End If

    If Recherche Is Nothing Then
        MsgBox "Le devis " & TextBoxNuméroDevis & " n'existe pas.", vbExclamation, "Erreur"
        TextBoxNuméroDevis = ""
    Else
        Ligne = Recherche.Row
        If Liste_DT.Cells(Ligne, "B") <> "Non définie" And Liste_DT.Cells(Ligne, "I") <> "Non défini" Then
            MsgBox "Le devis " & TextBoxNuméroDevis & " n'a pas de données manquantes.", vbExclamation, "Erreur"
            Réponse = MsgBox("Voulez-vous remplacer des données ?", vbQuestion + vbYesNo, "Modifier ?")
            If Réponse = vbYes Then
                MsgBox "Oui"
            Else
                Exit Sub
            End If
            TextBoxNuméroDevis = ""
        Else
            If Liste_DT.Cells(Ligne, "B") <> "Non définie" Then
                Label2.Visible = False
                ComboBoxCatégorie.Visible = False
                Label3.Top = 42
                ComboBoxDeviseur.Top = 36
                btnValider.Top = 66
                btnQuitter.Top = 66
                UserForm_Compléter_Devis.Height = 140.25
            Else
                If Liste_DT.Cells(Ligne, "I") <> "Non défini" Then
                    Label3.Visible = False
                    ComboBoxDeviseur.Visible = False
                    btnValider.Top = 66
                    btnQuitter.Top = 66
                    UserForm_Compléter_Devis.Height = 140.25
                End If
            End If
        End If
    End If

    Set ColonneDevis = Nothing
    Set Recherche = Nothing

End Sub

Merci pour votre aide

Bonsoir

Un fichier serait le bienvenu pour y voir clair

Crdlt

Bonjour,

"Je me demande s'il n'y a pas une formule toute faite du genre Clear qui réinitialise le Userform ? "

Effectivement on ne s'amuse pas à vider chacune des cases d'un userform aprés validation. on le ferme et on le réouvre dans la foulée.

Unload me
userform1.show

Joco,

J'ai préféré éviter de mettre le fichier car il y avait beaucoup plus de Sub dedans.

Xmenpl,

C'était tellement évident que je suis passé à côté... Effectivement c'est carrément plus simple et cela fonctionne nickel merci

Le seul truc qui est dommage c'est que du coup on voit le rechargement contrairement à la modification d'apparence qui est instantanée. Vilain côté perfectionniste.

Rechercher des sujets similaires à "reinitialisation apparence userform"