VBA, fermer userform avec bouton valider

  • Initiateur de la discussion Initiateur de la discussion boxi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

boxi

XLDnaute Nouveau
Bonjour,

Je travaille sur un document excel avec macro vba,
J'ai réalisé un userform avec une combobox et un bouton "valider".
J'aimerai que ce bouton valider lance la macro et ferme l'userform automatiquement, ce qui permettrait d'éviter de passer par un bouton "quitter" ou la croix rouge en haut à droite.
Le document devant utilisé par des personnes peut habituées à excel il doit être très simple à manier.
Je vous remercie de votre aide car je sèche sur la partie "fermeture" de la macro
Boxi
 

Pièces jointes

Re : VBA, fermer userform avec bouton valider

Bonsoir boxi,

Si j'ai bien compris (car la feuille liste commune ne figure pas dans ton fichier), il suffit de remplacer Exit Sub par Unload Me.

Ex :

Code:
Private Sub CommandButton1_Click()
 Dim commune As String
 Dim departement As String
    commune = ComboBox1.Value
    Sheets("liste commune").Activate
    Range("a8").Activate
   Do While ActiveCell.Value <> ""
        If commune = ActiveCell.Value Then
            Range("a2") = ActiveCell.Value
            Range("b2") = ActiveCell.Offset(0, 1).Value
            Range("c2") = ActiveCell.Offset(0, 2).Value
            Range("d2") = ActiveCell.Offset(0, 3).Value
            Range("e2") = ActiveCell.Offset(0, 4).Value
            Range("f2") = ActiveCell.Offset(0, 5).Value
            Unload Me '  <--- à la place de Exit Sub
        End If
        ActiveCell.Offset(1, 0).Activate
    Loop
   Sheets("liste commune").Activate
   Range("a1").Activate
End Sub
Si tu désires conserver les données dans le formulaire combo, il faut alors remplacer par Me.Hide

Cordialement.
 
Re : VBA, fermer userform avec bouton valider

Bonsoir Boxi, Papou-net, bonsoir le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Private Sub CommandButton1_Click() 'bouton "Valider"
Dim c As String 'déclare la variable c (Commune)
Dim r As Range 'déclare la varaible r (Recherche)
c = ComboBox1.Value 'définit la variabe c
With Sheets("liste commune") 'prend en compte l'onglet "liste commune"
    Set r = .Range("dernier").Find(c, , xlValues, xlWhole) 'définit la recherche r (recherche la commune dans la plage nommée "dernier")
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
        .Range("A2") = r.Value 'place c en A2
        .Range("B2") = r.Offset(0, 1).Value 'place le nom de la commune en B2
        .Range("C2") = r.Offset(0, 2).Value 'place le total en C2
        .Range("D2") = r.Offset(0, 3).Value 'place le total avec en D2
        .Range("E2") = r.Offset(0, 4).Value 'place le total sans en E2
        .Range("F2") = r.Offset(0, 5).Value 'place les personnes couverte en F2
    Else 'sinon
        .Range("A2:F2").ClearContents 'efface la plage A2:F2
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "liste commune"
Unload Me 'vide et ferme l'USerForm
End Sub
Le fichier :
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
  • Résolu(e)
Microsoft 365 Userform Excel VBA
Réponses
12
Affichages
2 K
Méli_
M
Retour