Autres Doublons dans Combobox 2007

chilo27

XLDnaute Occasionnel
Bonjour le forum

Le sujet est certainement été abordé plusieurs fois mais je n'ai pas trouvé
je souhaite éviter les doublons dans la combo nom du correspondant
et afficher tous les prénoms ayant le même nom dans la combo prénom du correspondant
ce qui devrait donner cela
anasthasie pierre
alain
colo

J'ai bien étalé toutes mes connaissances, mais elle a des limites

Je vous remercie par avance pour l'aide que vous m'apporterez

Merci beaucoup
 

Pièces jointes

  • BaseDo3(01).xlsm
    78.7 KB · Affichages: 14

Staple1600

XLDnaute Barbatruc
Re

Le rappeler ne me coûte rien et c'est indolore ;)
C'est tout aussi indolore pour toi de changer le titre de ta discussion
(Il suffit pour ce faire en étant sur le premier message de cliquer sur la petite flèche bleue à droite et de choisir Outils de la discussion)

Pour ta question, je laisse mes petits camarades de jeu prendre la suite ;)

EDITION: Bonjour job75
Voila, la suite a été prise.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour chilo27, JM,

Changez ce foutu titre de discussion en Doublons dans Combobox, qu'on n'en parle plus.

Dans l'UserForm supprimez la macro UserForm_Initialize qui ne sert à rien.

Et ajoutez ces 2 macros :
VB:
Sub Listebig_DropButtonClick()
Dim d As Object, tablo, i&, x$
Set d = CreateObject("Scripting.Dictionary")
tablo = RMCorrespondant.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo)
    x = tablo(i, 1)
    If x <> "" Then d(Application.Proper(x)) = ""
Next
If d.Count Then ListeBig.List = d.keys Else ListeBig.Clear
End Sub

Sub ListeDes_DropButtonClick()
ListeDes.Clear 'RAZ
If ListeBig.ListIndex = -1 Then Exit Sub
Dim d As Object, tablo, nom$, i&, x$
Set d = CreateObject("Scripting.Dictionary")
tablo = RMCorrespondant.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
nom = LCase(ListeBig)
For i = 2 To UBound(tablo)
    x = tablo(i, 2)
    If LCase(tablo(i, 1)) = nom And x <> "" Then d(Application.Proper(x)) = ""
Next
If d.Count Then ListeDes.List = d.keys
End Sub
A+
 

Staple1600

XLDnaute Barbatruc
Re

=>chilo27
Je t'ai expliqué comment faire dans le message#4
Mais je reprécise
Quand tu es sur ton premier message à droite, il y a trois petits points et une flèche bleus.
Passe ta souris dessus
S'affiche alors: Plus d'options
Cliques ensuite sur: Editer la discussion
Et là tu pourras changer le titre.
 

chilo27

XLDnaute Occasionnel
Rebonjour, Staple 1600, Job75
Merci Staple, je ne pris le temps de lire.

j'ai essayé la proposition de Job75, en sélectionnant un prénom, la combo ne se remplit pas (le nom sélectionné n'apparaît pas, mais la combo nom fonctionne bien

merci de votre patience
 

chilo27

XLDnaute Occasionnel
Bonjour chilo27, JM,

Changez ce foutu titre de discussion en Doublons dans Combobox, qu'on n'en parle plus.

Dans l'UserForm supprimez la macro UserForm_Initialize qui ne sert à rien.

Et ajoutez ces 2 macros :
VB:
Sub Listebig_DropButtonClick()
Dim d As Object, tablo, i&, x$
Set d = CreateObject("Scripting.Dictionary")
tablo = RMCorrespondant.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo)
    x = tablo(i, 1)
    If x <> "" Then d(Application.Proper(x)) = ""
Next
If d.Count Then ListeBig.List = d.keys Else ListeBig.Clear
End Sub

Sub ListeDes_DropButtonClick()
ListeDes.Clear 'RAZ                                  c'est cette ligne que j'ai supprimé
If ListeBig.ListIndex = -1 Then Exit Sub
Dim d As Object, tablo, nom$, i&, x$
Set d = CreateObject("Scripting.Dictionary")
tablo = RMCorrespondant.UsedRange.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
nom = LCase(ListeBig)
For i = 2 To UBound(tablo)
    x = tablo(i, 2)
    If LCase(tablo(i, 1)) = nom And x <> "" Then d(Application.Proper(x)) = ""
Next
If d.Count Then ListeDes.List = d.keys
End Sub
A+

Merci Job75

J'avais essayé mais le résultat était le même, toutefois quant j'ai supprimé la ligne Listedes.clear le problème est réglé, mais en changeant le nom dans la combo prénom ne s'efface pas

Je suis désolé de vous embêter Job75, j'aime bidouillé avec les macros trouvés mais je ne trouve pas toujours les solutions quand un problème se pose encore une fois désolé et merci pour l'aide apportée
 

chilo27

XLDnaute Occasionnel
Bonsoir le Forum

Merci Job75

J'ai essayé cela fonctionne, mais cela fait des caprices,
un message d'erreur apparaît

Erreur d'exécution N° 09
L'indice n'appartient pas à la sélection
en cliquant sur le bouton ajouter ou modifier,
et je ne sais pas y remédier

Vous me voyez désolé de ce désagrément Job75

Merci beaucoup
 

job75

XLDnaute Barbatruc
Il s'agit de l'autre UserForm.

Dans sa macro UserForm_Initialize on trouve Set f = Sheets("bd") or la feuille "bd" n'existe pas.

Il y a pas mal d'incohérences dans vos codes, il faudrait tout revoir.

Ce n'est plus le sujet de ce fil.
 

Discussions similaires

Réponses
13
Affichages
356

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa