OVH Cloud OVH Cloud

Liste déroulante sans doublon

12 réponses
Avatar
titou
Bonjour,

j'ai une liste déroulante avec des nom qui se répéte .

ex: gamma
gamma
gamma
titou
titou
alpha
....etc

je voudrais supprimer les doublons que dans la liste déroulante mais pas
dans ma colonne de référence.

C'est une listre déroulante de la BO controle

Merci

Titou

2 réponses

1 2
Avatar
titou
Bonjour Hervé

J'ai adapter ton code pour une combobox provenant de la liste déroulante
mais je n'arrive pas à le faire fonctionner.

J'ai msi ton code dans la module de la feuile ou est placé mon combobox.

J'ai mes donnée qui sont dasn une autre feuil mais le code le prend en
compte...etc

il me donne une erreur de propriété


Thierry


Bonsoir Titou,

Si ton combo est issu de la barre Formulaires utilise et adapte la proc
ci-dessous :
'POUR LISTE BARRE FORMULAIRE

Sub ChargerComboFormulaire()

Dim Tbl As New Collection
Dim Plage As Range
Dim I As Integer

'la plage de données est en feuil1 et en
'colonne A, adapter
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With

'l'erreur doit être gérée car il ne peut
'y avoir deux nom identique dans la clé
On Error Resume Next
For I = 1 To Plage.Rows.Count
Tbl.Add Plage(I), CStr(Plage(I))
Next

'invalide le gestionnaire d'erreur
On Error GoTo 0

'renommer le contrôle ici Shapes("CmbNom")
With Worksheets("Feuil1").Shapes("CmbNom").ControlFormat
.RemoveAllItems 'supprime tous les items
For I = 1 To Tbl.Count 'rempli le Combo
.AddItem Tbl(I)
Next I
End With

Set Plage = Nothing
Set Tbl = Nothing

End Sub

Si ton combo est issu de la barre Boîte à outils Contrôles, utilise et
adapte la proc ci-dessous :
'POUR LISTE BARRE OUTILS CONTROLE

Sub ChargerComboOutilsControle()

Dim Tbl As New Collection
Dim Plage As Range
Dim I As Integer

'la plage de données est en feuil1 et en
'colonne A, adapter
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With

'l'erreur doit être gérée car il ne peut
'y avoir deux nom identique dans la clé
On Error Resume Next
For I = 1 To Plage.Rows.Count
Tbl.Add Plage(I), CStr(Plage(I))
Next

'invalide le gestionnaire d'erreur
On Error GoTo 0

'renommer le contrôle ici ("ComboBox1")
With Worksheets("Feuil1").ComboBox1
.Clear 'supprime tous les items
For I = 1 To Tbl.Count
.AddItem Tbl(I)
Next I
End With

Set Tbl = Nothing
Set Plage = Nothing

End Sub

Hervé.

"titou" a écrit dans le message de news:

c'est une liste de nom commun.



Bonjour,

on peu savoir comment est remplie cette liste ..?


Bonjour,

j'ai une liste déroulante avec des nom qui se répéte .

ex: gamma
gamma
gamma
titou
titou
alpha
....etc

je voudrais supprimer les doublons que dans la liste déroulante mais
pas



dans ma colonne de référence.

C'est une listre déroulante de la BO controle

Merci

Titou











Avatar
titou
Bonjour satanas,

je rempli ma liste par une importation d'un tableau excel dans mon tableau,
le code c'est copier coller les tableau à importer.

c'est pas la question ... la question c'est comment tu la rempli la liste (
code..? pas ce qu'elle contient...)


c'est une liste de nom commun.



Bonjour,

on peu savoir comment est remplie cette liste ..?


Bonjour,

j'ai une liste déroulante avec des nom qui se répéte .

ex: gamma
gamma
gamma
titou
titou
alpha
....etc

je voudrais supprimer les doublons que dans la liste déroulante mais pas
dans ma colonne de référence.

C'est une listre déroulante de la BO controle

Merci

Titou








1 2