Vider textbox et combobox
Gil369
Messages postés
120
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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
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
A voir également:
- Vider textbox et combobox
- Vider le cache d'une application - Guide
- Vider cache tv lg ✓ - Forum TNT / Satellite / Réception
- Comment vider une clé usb - Guide
- Comment vider le stockage autre - Forum Mobile
- Vider memoire iphone - Guide
51 réponses
Nickel !
derniere ( je l espere ! ) question sur le sujet, si j entre une donnee ne figurant pas dans la colonne de reference, Additem me permet il de faire cet ajout en bout de liste ?
'// ComboBox_Tireur
'//
Set ws = Worksheets("Comptes_2008")
i = 3
.ComboBox_Tireur.Clear
While ws.Range("G" & i).Value <> ""
.ComboBox_Tireur.AddItem ws.Range("G" & i).Value
i = i + 1
Wend
encore une fois : merci beaucoup
derniere ( je l espere ! ) question sur le sujet, si j entre une donnee ne figurant pas dans la colonne de reference, Additem me permet il de faire cet ajout en bout de liste ?
'// ComboBox_Tireur
'//
Set ws = Worksheets("Comptes_2008")
i = 3
.ComboBox_Tireur.Clear
While ws.Range("G" & i).Value <> ""
.ComboBox_Tireur.AddItem ws.Range("G" & i).Value
i = i + 1
Wend
encore une fois : merci beaucoup
Bonjour,
Le code que je t'ai donné permet de rajouter une ligne sans avoir à retoucher le code. Par exemple, si ta liste commence à la ligne 3 et se termine à la ligne 20. La liste comporte 17 items. Si tu ajoutes un valeur sur la ligne 21. Sans toucher le code la liste comportera 18 items. Attention, il ne faut pas de ligne vide dans la feuille.
Le code ci dessus veut dire :
i est l'index de ligne. Ici la première ligne est la gne 3 donc i = 3.
Ensuite on fait : Tant que la valeur de la cellule "G & i" est différente de "" (vide), j'ajoute à la liste de la combobox la valeur de la cellule "G & i". J'ajoute 1 à i pour passer à la ligne suivante et je recommence le test ainsi de suite jusqu'à la première cellule vide de la colonne "G" qui me fait sortir de la boucle.
bon courage
;o)
Polux
Le code que je t'ai donné permet de rajouter une ligne sans avoir à retoucher le code. Par exemple, si ta liste commence à la ligne 3 et se termine à la ligne 20. La liste comporte 17 items. Si tu ajoutes un valeur sur la ligne 21. Sans toucher le code la liste comportera 18 items. Attention, il ne faut pas de ligne vide dans la feuille.
Le code ci dessus veut dire :
i est l'index de ligne. Ici la première ligne est la gne 3 donc i = 3.
Ensuite on fait : Tant que la valeur de la cellule "G & i" est différente de "" (vide), j'ajoute à la liste de la combobox la valeur de la cellule "G & i". J'ajoute 1 à i pour passer à la ligne suivante et je recommence le test ainsi de suite jusqu'à la première cellule vide de la colonne "G" qui me fait sortir de la boucle.
bon courage
;o)
Polux
Bonjour et merci de ton aide qui me permet d avancer dans mon projet, et merci pour tes explications qui confirment ce que j avais cru dechiffré car j essaie de comprendre ce que je fais en meme temps, ce qui n est pas evident, mais j y parviens.
Pour l ajout d item, j avais saisi la subtilite,(la liste a t elle une limite ? ) mais est ce que l inverse peut etre vrai aussi, c est a dire lorsque je saisi une valeur qui ne fais pas partie des items (dans la combobox) cette valeur peut elle s ajouter automatiquement a la liste des items ?
Merci
Pour l ajout d item, j avais saisi la subtilite,(la liste a t elle une limite ? ) mais est ce que l inverse peut etre vrai aussi, c est a dire lorsque je saisi une valeur qui ne fais pas partie des items (dans la combobox) cette valeur peut elle s ajouter automatiquement a la liste des items ?
Merci
re,
Oui, on peut sauvegarder ce qui a été saisie dans la combobox. De ce fait l'item sera ajouter à la liste. Il faut mettre le code dans l'évènement click du bouton valider. Il faut récupérer la valeur saisie dans la combobox (combobox.text) dans une variable, et l'ajouter à la première cellule vide de la liste. Ca ne devrait pas te poser de problème, il y a ce qu'il faut dans le code pour t'aider. N'hésite pas à revenir ici si tu bloques.
Je ne crois qu'il y ai une limite d'items pour un combobox, si ce n'est la limite de ligne autorisée par Excel dans une feuille (plus de 65000 je crois)
;o)
polux
Oui, on peut sauvegarder ce qui a été saisie dans la combobox. De ce fait l'item sera ajouter à la liste. Il faut mettre le code dans l'évènement click du bouton valider. Il faut récupérer la valeur saisie dans la combobox (combobox.text) dans une variable, et l'ajouter à la première cellule vide de la liste. Ca ne devrait pas te poser de problème, il y a ce qu'il faut dans le code pour t'aider. N'hésite pas à revenir ici si tu bloques.
Je ne crois qu'il y ai une limite d'items pour un combobox, si ce n'est la limite de ligne autorisée par Excel dans une feuille (plus de 65000 je crois)
;o)
polux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re,
je dois mettre le code dans le BTN_Valider ?
je pensais m orienter sur un private sub et additem, mais vu ce que tu me dis il faut que je fasse reference aux codes dans le module ?
merci
je dois mettre le code dans le BTN_Valider ?
je pensais m orienter sur un private sub et additem, mais vu ce que tu me dis il faut que je fasse reference aux codes dans le module ?
merci
Le code que j'ai mis dans le module1 ne doit plus être touché. Il tient compte des ajouts. Il faut simplement mettre ce qui a été saisie à la suite des autres éléments dans la feuille excel ... Supposons que les éléments de la combobox sont dans la feuille 2, dans la colonne B de la ligne 50 à la ligne 75. L'utilisateur saisie une valeur dans la combobox, lorsqu'il valide, on fait une boucle pour chercher la dernière ligne:
;o)
polux
i = 50 'première ligne
While Worksheets("Feuil2").Range("B" & i).Value <> ""
i = i + 1 'la cellule n'est pas vide on passe à la suivante
Wend
' On insert la saisie dans la première ligne vide
Worksheets("Feuil2").Range("B" & i + 1).Value = ComboBox1.Text
.... Ce code se place au début dans l'évènement de BTN_Valider_Click(). Le nouvel item se trouve maintenant dans les items de la combobox ...
;o)
polux
voilà ta procédure BTN_Valider_Click modifiée :
Private Sub BTN_Valider_Click()
Dim objControl As Control
Dim i As Long
'//Il faut adapter en fonction des onglets concernés et de la combo
'//
i = 50 'première ligne
While Worksheets("Feuil2").Range("B" & i).Value <> ""
i = i + 1 'la cellule n'est pas vide on passe à la suivante
Wend
' On insert la saisie dans la première ligne vide
Worksheets("Feuil2").Range("B" & i + 1).Value = ComboBox1.Text
'//
'On teste la saisie de la date...
If Not TestText(TXT_Date, "une date") Then Exit Sub
'On teste la saisie de la pieceN...
If Not TestText(TXT_PieceN°, "un numéro de pièce") Then Exit Sub
'On teste la saisie de l'editeur...
If Not TestText(ComboBox_Editeur, "un éditeur") Then Exit Sub
'On teste la saisie de la nature de l operation
'On teste la saisie de categorie...
If Not TestText(ComboBox_Categorie2, "une catégorie") Then Exit Sub
'On teste la saisie du tireur...
If Not TestText(ComboBox_Tireur, "un tireur") Then Exit Sub
'On teste la saisie du libéllé...
If Not TestText(ComboBox_Libelle, "un libéllé") Then Exit Sub
'On teste la saisie de l'opération...
'On teste la saisie du montant...
If Not TestText(TXT_Montant, "un montant") Then Exit Sub
Range("Comptes_2008!B65536").End(xlUp).Offset(1, 0).Value = Me.TXT_Date.Value
Range("Comptes_2008!C65536").End(xlUp).Offset(1, 0).Value = Me.TXT_PieceN°.Value
Range("Comptes_2008!D65536").End(xlUp).Offset(1, 0).Value = Me.TXT_ChequeN°.Value
Range("Comptes_2008!D65536").End(xlUp).Offset(1, 0).Value = Me.TXT_Prelevement.Value
Range("Comptes_2008!D65536").End(xlUp).Offset(1, 0).Value = Me.TXT_Virement.Value
Range("Comptes_2008!D65536").End(xlUp).Offset(1, 0).Value = Me.TXT_Especes.Value
Range("Comptes_2008!E65536").End(xlUp).Offset(1, 0).Value = Me.ComboBox_Editeur.Value
Range("Comptes_2008!F65536").End(xlUp).Offset(1, 0).Value = Me.ComboBox_Categorie2.Value
Range("Comptes_2008!G65536").End(xlUp).Offset(1, 0).Value = Me.ComboBox_Tireur.Value
Range("Comptes_2008!H65536").End(xlUp).Offset(1, 0).Value = Me.ComboBox_Libelle.Value
For Each objControl In Controls 'FRM_Formulaire_de_saisies.Controls
If TypeOf objControl Is TextBox Then
objControl.Text = ""
End If
Next
Module1.InitComboBox
End Sub