Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Ajouter item à un combobox à partir d'un textbox en évitant les doublons
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 !
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
Bonjour Papou, le Forum,
La différence que j'ai avec l'autre demande, c'est que la liste qui alimente le combobox n'est pas dans une feuille mais chargée directement à l'initialisation du userfrom par des additem...
C'est certain que je pourrais toujours exporter la liste vers une feuille tampon et utiliser le code en question pour ajouter le nouvel item mais je me demandais s'il n'y avait pas une méthode plus directe du genre on passe chaque élément de la liste du combobox en revue et si l'item ne s'y trouve pas, on l'ajoute... à moins que je n'ai absoulement rien compris au code reçu dans le fil en question....
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
Bonjour le Forum
Je suis intéressé par ce fil. Paritec je pense Blord a comme souci le fait que l'ajout réalisé n'est pas inclut lors de la prochaine ouverture de l'USF. Par Exemple avec votre fichier j'ajoute "Dominique" il et bien ajouté, mais a la prochaine ouverture le choix de "Dominique" n'est plus possible !
Bon WK
Dominique
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
bonjour WD Benoit le forum
oui le à la prochaine ouverture le prénom ne sera pas disponible, mais il ne parle pas de l'avoir disponible mais de l’ajouter à la combobox
ce qui est bien différent.
En plus il dit qu'il ne charge pas avec une liste ce qui est une bêtise mais bon je n'insisterai pas là dessus, il a bien une liste obligatoirement pour remplir sa combo et si il veux que pour la prochaine ouverture le prénom soit disponible c'est pas un souci non plus mais il faut des explications claires du résultat souhaité et du pourquoi et après on sait faire, mais j'attend des explications claires pour poursuivre, et pour le traitement des doublons question initiale c'est fait
a+
papou🙂
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
Salut
Si... tu ne veux pas enregistrer le nouvel item, tu peux essayer cela
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Itm As Range
Set Itm = [A:A].Find(TextBox1, Lookat:=xlWhole) 'liste en colonne A
If Itm Is Nothing Then ComboBox1.AddItem TextBox1
End Sub
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
bonjour blord,Paritec,Wdandco
ajout dans le fichier de Paritec
en rassemblant quelques codes,concerne listbox1
pour ajout dans listbox1 code dans module1
à bientôt
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
Bonjour à tous,
Tout d'abord , merci pour votre participation et vos suggestion...
À Papou, le premier fichier Blord1.xls correspond exactement à ce que je voulais, merci infiniment....
Le code qui se trouve dans le userform que voici :
Code:
Option Explicit
Option Compare Text
Private Sub UserForm_Initialize()
Dim i&, fin&, aa As Variant
aa = Feuil1.Range("A5:A" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row)
ComboBox1.List = aa
End Sub
Private Sub CommandButton1_Click()
Dim i&
If TextBox1 = "" Then Exit Sub
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.List(i, 0) = TextBox1 Then Exit Sub
Next i
ComboBox1.AddItem (TextBox1.Text): TextBox1 = ""
End Sub
Si j'ai bien compris, en cliquant sur le bouton 1, le code fait en sorte de parcourir chacun des items chargés dans le combobox avec la boucle :
For i = 0 To ComboBox1.ListCount - 1
puis il compare l'item avec la valeur du textbox avec la ligne :
If ComboBox1.List(i, 0) = TextBox1 Then Exit Sub
Si l'item est identique il sort du code et va à l'item suivant dans la liste avec le
next et recommence la vérification...
Si la valeur n'est pas trouvée dans la liste, elle est ajoutée par la ligne :
ComboBox1.AddItem (TextBox1.Text): TextBox1 = ""
et ensuite le tetxbox est vidé...
Est-ce que j'ai bien tout compris ???
Si oui, la méthode utilisée ici est donc différente de ce qui m'a été montré dans mon autre fil dont parlait Papou.
Dans ce fil, on cherchait la valeur dans la liste des données qui était sur une feuille excel avec ce code :
Code:
Dim fin&, i&
'Récupère l'entrée sélectionnée
Dim Var As String
Dim MotTrouve
Call LoadProjets
Var = ComboBoxEntrees.Value
Set MotTrouve = Sheets("data").Range("A:A").Find(What:=Var, LookAt:=xlWhole)
fin = Feuil3.Range("A" & Rows.Count).End(xlUp).Row
TextBoxNom.Value = MotTrouve.Offset(0, 1).Value
TextBoxPrenom.Value = MotTrouve.Offset(0, 2).Value
For i = 2 To fin
If MotTrouve.Offset(0, 3).Value = Feuil3.Cells(i, 1) Then GoTo 1
Next i
MsgBox "Ce projet " & "'''" & MotTrouve.Offset(0, 3) & "'''" & " n 'est plus autorisé", , "Projet Interdit"
ComboBoxProjet.Clear: ComboBoxProjet.AddItem MotTrouve.Offset(0, 3)
ComboBoxProjet.ListIndex = 0
ComboBoxProjet.Value = MotTrouve.Offset(0, 3).Value
Ce qui à mon avis est différent de ce qui a été proposé ici... Mais bon, je peux me tromper ou n'avoir rien compris du tout....
Si je puis me permettre, à quoi sert cette ligne en début de code :Option Compare Text
Re : Ajouter item à un combobox à partir d'un textbox en évitant les doublons
Bonjour Benoit le squale, tous
tu as mal compris un détail je te le met ci-dessous explication en bleu
HTML:
Si j'ai bien compris, en cliquant sur le bouton 1, le code fait en sorte de parcourir chacun des items chargés dans le combobox avec la boucle :
For i = 0 To ComboBox1.ListCount - 1
tout à fait exact
HTML:
puis il compare l'item avec la valeur du textbox avec la ligne :
If ComboBox1.List(i, 0) = TextBox1 Then Exit Sub
toujours exact
HTML:
Si l'item est identique il sort du code et va à l'item suivant dans la liste avec le
next et recommence la vérification...
non là si l'item est identique il sort du code donc il ne va pas a l'item suivant donc pas au next. En fait pour résumer si il y a une correspondance il sort et dans le cas contraire il fini sa boucle jusqu'au dernier item et n'ayant pas trouvé de correspondance il passe à la ligne suivante et ajoute la valeur de textbox2 à la liste de la Combo et vide la combo
HTML:
Si la valeur n'est pas trouvée dans la liste, elle est ajoutée par la ligne :
ComboBox1.AddItem (TextBox1.Text): TextBox1 = ""
et ensuite le tetxbox est vidé...
parfaitement exact
l'Option Compare Text sert à ne pas différencier minuscule et majuscule car autrement si tu tapes dans le textbox1 Jean et que dans la liste c'est écrit jean la macro ne trouverait pas la correspondance, mais si tu préfères trouver exactement le même texte tu peux le retirer Option Compare text
pour le deuxième code que tu as remis en dessous oui c'est un peu différent mais le principe de la boucle c'est cela que je voulais te dire est bien là.
bonne journée
a+
papou🙂
- 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