Est il possible de charger dans un comboxbox ( à 2 colonnes) deux
colonnes en supprimant au préalable les doublons de la 1ere colonne.
Par exemple, dans une feuille avec les colonnes de A jusqu'à I
renseignées.
je veux avoir dans la combobox les Colonnes A et E en supprimmant les
doublons de A.
Dans la feuille
Col A / Col E
chateau du bon vin / rouge
chateau du bon vin / rouge
chateau du bon vin / blanc
chateau du bon vin / blanc
chateau du vin / rouge
Dans la combo
Col 1 / Col 2
chateau du bon vin / rouge
chateau du bon vin / blanc
chateau du vin / rouge
J'y arrive avec une seule colonne mais pas 2.
Voilà le code que j'utilise.
Merci pour votre aide
****************************
Sub chargement_combo(myplage As Range, mycombobox As MSForms.combobox)
'procédure générique pour charger les combobox
Dim AllCells As Range, cell As Range
Dim NoDupes As New Collection
Dim i As Integer, J As Integer
Dim Swap1, Swap2, item
'remove items from list
total = mycombobox.ListCount
If total = 0 Then GoTo remplissage
For Num = 0 To total
If Num = total Then Exit For
mycombobox.RemoveItem 0
Next
mycombobox.Value = ""
remplissage:
'liste entree************************
' The items are in D2:D65600
Set AllCells = myplage
' The next statement ignores the error caused
' by attempting to add a duplicate key to the collection.
' The duplicate is not added - which is just what we want!
On Error Resume Next
For Each cell In AllCells
NoDupes.Add cell.Value, CStr(cell.Value)
' Note: the 2nd argument (key) for the Add method must be a
string
Next cell
' Resume normal error handling
On Error GoTo 0
' Sort the collection (optional)
For i = 1 To NoDupes.Count - 1
For J = i + 1 To NoDupes.Count
If NoDupes(i) > NoDupes(J) Then
Swap1 = NoDupes(i)
Swap2 = NoDupes(J)
NoDupes.Add Swap1, before:=J
NoDupes.Add Swap2, before:=i
NoDupes.Remove i + 1
NoDupes.Remove J + 1
End If
Next J
Next i
' Add the sorted, non-duplicated items to a ListBox
For Each item In NoDupes
mycombobox.AddItem item
Next item
Est il possible de charger dans un comboxbox ( à 2 colonnes) deux colonnes en supprimant au préalable les doublons de la 1ere colonne. Par exemple, dans une feuille avec les colonnes de A jusqu'à I renseignées. je veux avoir dans la combobox les Colonnes A et E en supprimmant les
doublons de A.
Dans la feuille Col A / Col E chateau du bon vin / rouge chateau du bon vin / rouge chateau du bon vin / blanc chateau du bon vin / blanc chateau du vin / rouge
Dans la combo Col 1 / Col 2 chateau du bon vin / rouge chateau du bon vin / blanc chateau du vin / rouge
J'y arrive avec une seule colonne mais pas 2. Voilà le code que j'utilise. Merci pour votre aide
****************************
Sub chargement_combo(myplage As Range, mycombobox As MSForms.combobox)
'procédure générique pour charger les combobox
Dim AllCells As Range, cell As Range Dim NoDupes As New Collection Dim i As Integer, J As Integer Dim Swap1, Swap2, item
'remove items from list total = mycombobox.ListCount If total = 0 Then GoTo remplissage For Num = 0 To total If Num = total Then Exit For mycombobox.RemoveItem 0 Next mycombobox.Value = ""
remplissage: 'liste entree************************ ' The items are in D2:D65600 Set AllCells = myplage
' The next statement ignores the error caused ' by attempting to add a duplicate key to the collection. ' The duplicate is not added - which is just what we want! On Error Resume Next For Each cell In AllCells NoDupes.Add cell.Value, CStr(cell.Value) ' Note: the 2nd argument (key) for the Add method must be a string Next cell
' Resume normal error handling On Error GoTo 0
' Sort the collection (optional) For i = 1 To NoDupes.Count - 1 For J = i + 1 To NoDupes.Count If NoDupes(i) > NoDupes(J) Then Swap1 = NoDupes(i) Swap2 = NoDupes(J) NoDupes.Add Swap1, before:=J NoDupes.Add Swap2, before:=i NoDupes.Remove i + 1 NoDupes.Remove J + 1 End If Next J Next i
' Add the sorted, non-duplicated items to a ListBox For Each item In NoDupes mycombobox.AddItem item Next item
End Sub
Bonjour,
Un truc pour extraire les données d'une colonne Excel et les mettre
dans un contrôle (ListBox ou ComboBox), sans doublon:
"fruityfrank@nospam.org" <fruityfrank@free.fr> a écrit dans le message
de news:fafeb81b.0405310928.4799cbf@posting.google.com...
Bonjour,
Est il possible de charger dans un comboxbox ( à 2 colonnes) deux
colonnes en supprimant au préalable les doublons de la 1ere colonne.
Par exemple, dans une feuille avec les colonnes de A jusqu'à I
renseignées.
je veux avoir dans la combobox les Colonnes A et E en supprimmant
les
doublons de A.
Dans la feuille
Col A / Col E
chateau du bon vin / rouge
chateau du bon vin / rouge
chateau du bon vin / blanc
chateau du bon vin / blanc
chateau du vin / rouge
Dans la combo
Col 1 / Col 2
chateau du bon vin / rouge
chateau du bon vin / blanc
chateau du vin / rouge
J'y arrive avec une seule colonne mais pas 2.
Voilà le code que j'utilise.
Merci pour votre aide
****************************
Sub chargement_combo(myplage As Range, mycombobox As
MSForms.combobox)
'procédure générique pour charger les combobox
Dim AllCells As Range, cell As Range
Dim NoDupes As New Collection
Dim i As Integer, J As Integer
Dim Swap1, Swap2, item
'remove items from list
total = mycombobox.ListCount
If total = 0 Then GoTo remplissage
For Num = 0 To total
If Num = total Then Exit For
mycombobox.RemoveItem 0
Next
mycombobox.Value = ""
remplissage:
'liste entree************************
' The items are in D2:D65600
Set AllCells = myplage
' The next statement ignores the error caused
' by attempting to add a duplicate key to the collection.
' The duplicate is not added - which is just what we want!
On Error Resume Next
For Each cell In AllCells
NoDupes.Add cell.Value, CStr(cell.Value)
' Note: the 2nd argument (key) for the Add method must be a
string
Next cell
' Resume normal error handling
On Error GoTo 0
' Sort the collection (optional)
For i = 1 To NoDupes.Count - 1
For J = i + 1 To NoDupes.Count
If NoDupes(i) > NoDupes(J) Then
Swap1 = NoDupes(i)
Swap2 = NoDupes(J)
NoDupes.Add Swap1, before:=J
NoDupes.Add Swap2, before:=i
NoDupes.Remove i + 1
NoDupes.Remove J + 1
End If
Next J
Next i
' Add the sorted, non-duplicated items to a ListBox
For Each item In NoDupes
mycombobox.AddItem item
Next item
Est il possible de charger dans un comboxbox ( à 2 colonnes) deux colonnes en supprimant au préalable les doublons de la 1ere colonne. Par exemple, dans une feuille avec les colonnes de A jusqu'à I renseignées. je veux avoir dans la combobox les Colonnes A et E en supprimmant les
doublons de A.
Dans la feuille Col A / Col E chateau du bon vin / rouge chateau du bon vin / rouge chateau du bon vin / blanc chateau du bon vin / blanc chateau du vin / rouge
Dans la combo Col 1 / Col 2 chateau du bon vin / rouge chateau du bon vin / blanc chateau du vin / rouge
J'y arrive avec une seule colonne mais pas 2. Voilà le code que j'utilise. Merci pour votre aide
****************************
Sub chargement_combo(myplage As Range, mycombobox As MSForms.combobox)
'procédure générique pour charger les combobox
Dim AllCells As Range, cell As Range Dim NoDupes As New Collection Dim i As Integer, J As Integer Dim Swap1, Swap2, item
'remove items from list total = mycombobox.ListCount If total = 0 Then GoTo remplissage For Num = 0 To total If Num = total Then Exit For mycombobox.RemoveItem 0 Next mycombobox.Value = ""
remplissage: 'liste entree************************ ' The items are in D2:D65600 Set AllCells = myplage
' The next statement ignores the error caused ' by attempting to add a duplicate key to the collection. ' The duplicate is not added - which is just what we want! On Error Resume Next For Each cell In AllCells NoDupes.Add cell.Value, CStr(cell.Value) ' Note: the 2nd argument (key) for the Add method must be a string Next cell
' Resume normal error handling On Error GoTo 0
' Sort the collection (optional) For i = 1 To NoDupes.Count - 1 For J = i + 1 To NoDupes.Count If NoDupes(i) > NoDupes(J) Then Swap1 = NoDupes(i) Swap2 = NoDupes(J) NoDupes.Add Swap1, before:=J NoDupes.Add Swap2, before:=i NoDupes.Remove i + 1 NoDupes.Remove J + 1 End If Next J Next i
' Add the sorted, non-duplicated items to a ListBox For Each item In NoDupes mycombobox.AddItem item Next item