Combobox :Problème de doublons
LANGAZOU
Messages postés
95
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai un combobox ("client") qui s'alimente (sans doublons) à partir une feuille EXCEL. le problème c'est que parfois un même client existe en doublon au sein de la liste déroulante de ma combobox parce que un espace a été ajouté à la fin lors de sa création dans ma Combobox par faute d'inattention. Est ce qu'il y'a un moyen d'effacer toujours l'espace ajouté à la fin d'une chaîne de caractère (avant même qu'il soit enregistré sur la feuille Excel) ?
Merci pour votre réponse.
j'ai un combobox ("client") qui s'alimente (sans doublons) à partir une feuille EXCEL. le problème c'est que parfois un même client existe en doublon au sein de la liste déroulante de ma combobox parce que un espace a été ajouté à la fin lors de sa création dans ma Combobox par faute d'inattention. Est ce qu'il y'a un moyen d'effacer toujours l'espace ajouté à la fin d'une chaîne de caractère (avant même qu'il soit enregistré sur la feuille Excel) ?
Merci pour votre réponse.
A voir également:
- Combobox :Problème de doublons
- Remplir combobox vba ✓ - Forum Excel
- Propriétés combobox vba ✓ - Forum VB / VBA
- Combobox vba liste déroulante dynamique ✓ - Forum Excel
- Vba combobox listindex ✓ - Forum VB / VBA
- Javascript combobox - Forum Javascript
4 réponses
Bonjour,
La fonction Trim() supprime les espaces avant et après un mot
Mot -> "TOTO"
voir aussi Ltrim(), Rtrim(), Ucase(), Lcase()
La fonction Trim() supprime les espaces avant et après un mot
Mot = " TOTO "
Mot = Trim(Mot)
Mot -> "TOTO"
voir aussi Ltrim(), Rtrim(), Ucase(), Lcase()
prenant l'exemple du client : "Jack Daniel " (espace à la fin) le problème c'est que lorsque j'utilise le TRIM il va supprimer l'espace avant et après ! c'est le désordre total. "JackDaniel"
Ok Merci, je vais l'essayer mais ou je doit mettre cette fonction ?(combobox change ou initialize ..)
voici mon code d'alimentation du combo:
Private Sub UserForm_Initialize()
ComboBox2.SetFocus
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26)
If Me.ComboBox2.ListIndex = -1 Then
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
end sub
Merci pour ton suivi.
voici mon code d'alimentation du combo:
Private Sub UserForm_Initialize()
ComboBox2.SetFocus
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26)
If Me.ComboBox2.ListIndex = -1 Then
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
end sub
Merci pour ton suivi.
ca marche parfaitement pour les prochains nouveaux clients ( au sein du bouton OK) mais le problème c'est qu'il y'a des anciens clients déjà enregistré avec l'espace alors ya t-il un moyen de les recuperer sans espace dans le combo en intégrant le TRIM dans le combo.additem ?
Private Sub UserForm_Initialize()
ComboBox2.SetFocus
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26)
If Me.ComboBox2.ListIndex = -1 Then
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
end sub
Merci.
Private Sub UserForm_Initialize()
ComboBox2.SetFocus
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26)
If Me.ComboBox2.ListIndex = -1 Then
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
end sub
Merci.
c'est bon je l'ai trouvé :
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Sheets("CD").Cells(i, 26) = Trim(Sheets("CD").Cells(i, 26))
Next
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26) ' on se positionne dans le combobox
If Me.ComboBox2.ListIndex = -1 Then ' Existe t-il?
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
Merci beaucoup pour votre aide :)
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Sheets("CD").Cells(i, 26) = Trim(Sheets("CD").Cells(i, 26))
Next
For i = 3 To Sheets("CD").Cells(3, 26).End(xlDown).Row
Me.ComboBox2 = Sheets("CD").Cells(i, 26) ' on se positionne dans le combobox
If Me.ComboBox2.ListIndex = -1 Then ' Existe t-il?
Me.ComboBox2.AddItem Sheets("CD").Cells(i, 26)
End If
Next i
Merci beaucoup pour votre aide :)
Bonjour,
Il est tout de même dommage que vous ne suiviez pas les (bons) conseils de Yoda. Votre base comporte des espaces intempestifs qui engendre des problèmes de doublons et vous ne voulez pas traiter le problème à la base?
Nettoyez votre liste de noms, votre fichier ne s'en portera que mieux. Qui plus est cela va vous prendre 10 minutes. Ce temps n'est rien comparé aux erreurs susceptibles de se présenter dans votre code...
Ps : pour rappel, vous avez un autre sujet en cours.
Il est tout de même dommage que vous ne suiviez pas les (bons) conseils de Yoda. Votre base comporte des espaces intempestifs qui engendre des problèmes de doublons et vous ne voulez pas traiter le problème à la base?
Nettoyez votre liste de noms, votre fichier ne s'en portera que mieux. Qui plus est cela va vous prendre 10 minutes. Ce temps n'est rien comparé aux erreurs susceptibles de se présenter dans votre code...
Ps : pour rappel, vous avez un autre sujet en cours.
j'ai découvert encore le problème suivant:
je veux lorsque le textbox1 est vide et le textbox 2 non vide le EXIT sur le textbox2 me renvoie au textbox1 pour remplissage. j'ai essayé le code suivant mais ca marche pas:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then
MsgBox " Borne Min vide !"
Cancel = True
End If
End sub
Merci.
je veux lorsque le textbox1 est vide et le textbox 2 non vide le EXIT sur le textbox2 me renvoie au textbox1 pour remplissage. j'ai essayé le code suivant mais ca marche pas:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then
MsgBox " Borne Min vide !"
Cancel = True
End If
End sub
Merci.
Tu t'es trompé de discussion...
ma réponse ici : https://forums.commentcamarche.net/forum/affich-31515133-probleme-vba-excel
ma réponse ici : https://forums.commentcamarche.net/forum/affich-31515133-probleme-vba-excel