CommandButton pour effacer les valeurs d'un formulaire

  • Initiateur de la discussion Initiateur de la discussion Marie
  • 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 !

M

Marie

Guest
Bonjour à tous, à nouveau je fais appel à vos connaissances pour tenter d'améliorer mon fichier.

J'ai un userform de type formulaire qui contient des textbox et des combobox et commandbutton.

Un commandbutton "OK" permet de valider les données encodées et d'alimenter un compteur.
J'aimerais que ce même CommandButton puisse, en plus d'alimenter le compteur, supprimer les valeurs des textbox et combobox afin que le userform soit à nouveau "vierge" pour de nouveaux encodages.

Est-ce possible ?

Merci à tous
Marie
 
salut,

Private Sub UserForm_Activate()
TextBox1.Value = ""
ComboBox1.Clear
End Sub

tu peux sinon le mettre a la fermeture avec l'envènement ( celui se lance qui si l'instance du userform est supprimé de la mémoire donc avec un Unload et non avec un UserForm1.Hide )

Private Sub UserForm_Terminate()
TextBox1.Value = ""
ComboBox1.Clear
End Sub
 
Salut Arnaud et le forum, merci de me lire

Ton code a pour effet de supprimer le contenu de mes combobox dés l'ouverture du userform.

Je souhaiterais que les valeurs soient effacées en cliquant sur mon commandbutton et pas en activant le userorm.

Est-ce possible ?
Marie
 
avec l'envenement

Private Sub CommandButton1_Click()
TextBox1.Value = ""
ComboBox1.Clear
End Sub

mais si l'utilisateur ferme ta userform à l'aide de la croix en haut a droite, tout t combo ou textbox seront encore remplis c pour ça que je te proposé cette solution.
 
Merci Arnaud

Cela fonctionne sauf pour deux combobox. Serait-ce parce que la commande "Listindex" est liée à celles-ci ?

J'ai le code suivant pour ces combobox :

Private Sub ComboBox1_Change()
' on a click sur le combo AUTEUR

If ComboBox1.ListIndex = -1 Then ' nouvel auteur
ComboBox2.Clear
TextBox5 = ""
TextBox1 = ""
ComboBox4 = ""
TextBox2 = ""
ComboBox7 = ""
TextBox3 = ""
TextBox4 = ""
Else
ComboBox2.Clear
L = ComboBox1.ListIndex + 2
auteur = Sheets("listes").Range("B" & L)
Range("A1").Activate

' recherche dans la feuille demande de la 1' ligne pour cette auteur
On Error Resume Next
Cells.Find(What:=auteur, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
On Error GoTo 0
num_lig = ActiveCell.Row ' n° ligne

' rempli le combox titre
i = num_lig
While Range("B" & i).Value = auteur
ComboBox2.AddItem Range("C" & i)
i = i + 1
Wend
ComboBox2.ListIndex = -1 ' affiche le 1' titre

' rempli les infos de la ligne
TextBox5 = Range("A" & num_lig)
TextBox1 = Range("D" & num_lig)
ComboBox4 = Range("E" & num_lig)
TextBox2 = Range("F" & num_lig)
ComboBox7 = Range("G" & num_lig)
TextBox3 = Range("H" & num_lig)
TextBox4 = Range("I" & num_lig)

End If

End Sub

J'avoue ne pas maîtriser du tout le VB
Merci beaucoup
Marie
 
Bonjour Marie, Arnaud le Forum

J'ai peur de mal comprendre ta réponse Arnaud, en fait il me semble que Marie parle de CommandButton [OK] qui lui permet déjà de valider les entrée faites et d'incrémenter un compteur et elle souhaiterait en plus que ce même bouton lui permette aussi de "vider" les contrôles pour une nouvelle saisie sans décharger le UserForm...

Hors ta réponse semble indiquer de faire ceci à l'activation du UserForm ou à son déchargement... (Ce qui semble de plus inutile si les données sont entrées en RunTime elles disparraissent d'elles-même, même avec la fermeture pas la croix... (?)

Quand au Clear de ComboBox tu es aussi assez radicale !! Je pense que Marie aura encore besoin de sélectionner des Item dans la liste lors de la prochaine saisie...

A moins que quelque ne m'échappe, je conseille tout simplement ceci à Marie qui lui permettra de tout mettre à vide d'un coup toutes ses textBox et ComboBox (quelque soit la quantité)...

Private Sub CommandButton1_Click()
Dim CTRL As Control

'<<<Ici la macro de Marie qui permet de valider les données encodées et d'alimenter un compteur...

For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Then
CTRL = ""
ElseIf TypeOf CTRL Is MSForms.ComboBox Then
CTRL = ""
End If
Next
End Sub


Je pense que celà devrait convenir...

Bon après Midi
@+Thierry
 
effectivement j'avais du mal lire la question................je pensai que son bouton "ok" permettais de valider et de sortir du userform.
autant pour moi 😉.
au passage, ta réponse pour la macro est effectivement plus sympas, surtout si tu as pas mal de composant.
 
Re Bonjour

Marie je n'avais pas vu ta réponse de 15:49, mais en tout cas la solution que je te propose est compatible avec cette façon d'incrémenter les donnée dans ton UserForm par l'évènement ComboBox1_Change.

Par contre donc quand tu cliqueras sur ce CommandButton1 Toutes les TextBox et Toutes les ComboBox seront Vidée (les Combo conservant leur Listes de Données)

Pour ce qui est de la Méthode ListIndex pour les ComboBox c'est au Choix, car les ComboBox sont un peu un Hybride entre la TextBox et le ListBox, donc tu pourrais aussi faire ceci qui aurait le même effet que la macro que je t'ai donnée ci-dessus :

Private Sub CommandButton1_Click()
Dim CTRL As Control
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Then
CTRL = ""
ElseIf TypeOf CTRL Is MSForms.ComboBox Then
CTRL.ListIndex = -1
End If
Next
End Sub

Par contre si on parle de ListBox au lieu de ComboBox, seule la méthode ListIndex = -1 est applicable...


PS pour Arnaud, et oui ça m'arrive aussi de lire et pourtant d'être à coté de la question !!!

Bonne Fin d'Après Midi
@+Thierry
 
Merci à tous les deux,


Finalement j'ai opté pour la première solution de @+Thierry car cela fonctionne très bien ainsi.

A très bientôt dans un nouveau fil car autre problème non lié.

Bonne fin d'après-midi
C'est très sympa
Marie
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour