Vider textbox et combobox

Bonjour,
novice en vba et nouvel inscrit sur le site je fais appel a vous.
J ai un formulaire avec des textbox et combobox dont le contenu est envoyé dans une feuille excel, lorsque je valide, je souhaite "vider" tous les champs et garder mon formulaire affiché pour de nouvelles saisies, avec le code ci joint je vide uniquement les textbox, merci de m orienter pour vider egalement les combobox

Dim objControl As Control

For Each objControl In FRM_Formulaire_de_saisies.Controls
If TypeOf objControl Is msforms.TextBox Then
objControl.Text = ""
End If
Next

End Sub

Merci a vous

PS je travaille avec excel 2007
Configuration: Windows XP
Internet Explorer 6.0

51 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Il est demandé de vider tous les champs d'un formulaire VBA après validation, en conservant le formulaire affiché pour de nouvelles saisies, et cela doit inclure TextBox et ComboBox. Pour les TextBox, on peut parcourir les contrôles du formulaire et effacer le texte, et pour les ComboBox, on peut soit vider la liste via RowSource = "" soit utiliser Clear. Certaines réponses recommandent d'utiliser ComboBox1.Clear pour effacer les éléments, ou d'assigner une chaîne vide à RowSource; dans la pratique, Clear est généralement plus fiable pour les contrôles en formulaire. En cas de réinitialisation complète, il peut être utile d'appeler une routine dédiée de remise à zéro des contrôles et de rechargement des sources des combobox après nettoyage des TextBox.

Bobot (l’IA à votre service)
  1. bonjour,

    Ajoute ça dans ta procédure :
    For Each objControl In FRM_Formulaire_de_saisies.Controls
    If TypeOf objControl Is msforms.ComBoBox Then
    objControl.Clear
    End If
    Next

    ;o)

    polux
    1. Salut polux et merci de ta reponse rapide, j ai mis bpout a bout mais ça "plante" sur objControl.Clear

      Dim objControl As Control

      For Each objControl In FRM_Formulaire_de_saisies.Controls
      If TypeOf objControl Is msforms.TextBox Then
      objControl.Text = ""
      End If
      Next
      For Each objControl In FRM_Formulaire_de_saisies.Controls
      If TypeOf objControl Is msforms.Combobox Then
      objControl.Clear
      End If
      Next

      End Sub

      je dois tout aligne ou il faut "compile" ?
      Merci
      1. dsl, je ne vois pas ... pour effacer un ComboBox c'est bien la propriété Clear ...

        Teste ça:

        Dim objControl As Control

        For Each objControl In FRM_Formulaire_de_saisies.Controls
        If TypeOf objControl Is msforms.TextBox Then
        objControl.Text = ""
        End If
        If TypeOf objControl Is msforms.ComboBox Then
        objControl.Clear
        End If
        Next

        End Sub
        1. enlève msform devant ComboBox .... où est cette procédure ? sur ton formulaire ?
          1. re, merci pour ta patience !
            j ai supprimé msform ,le message d erreur se situe sur objControl.Clear
            j ai mis ce code dans BTN_valider, tu veux que je te mette le code complet ?
            Merci
            1. lol il faut que tu postes le lien ici pour que je puisse récupérer le fichier ....
              1. oupsssss suis vraiment novice ici !!! je dois copier le lien dans mon post ?
                1. décidément ... c'est la version 2007 que tu as ... je ne l'ai pas ... il faut que tu le sauvegardes avec une version inférieure, j'ai Excel 2002 ... je ne peux donc pas lire ton fichier
                  1. ca passe pas, je t'ai envoyé un msg privé avec mon email ... envoie le fichier par mail
                    • 1
                    • 2
                    • 3