Bonjour
Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform
(ModificationDistribution) par la liste des nom se trouvant dans la
feuille "Distribution" de D2 à la dernière ligne pleine et si possible
trier par ordre alphabétique.
merci
Pour l instant voila ce que j ai fait mais rien n apparait
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Dominique,
Un exemple ... il trie les données en ordre croissant !
Tu dois adapter le nom de la feuille de la procédure où sont tes données et le nom de ton combobox si différent. '---------------------------------------- Private Sub UserForm_Initialize() Dim Dict As Object, Tblo As Variant Dim Rg As Range, C As Range Set Dict = CreateObject("Scripting.Dictionary") With Worksheets("Feuil1") 'Nom Feuille à adapter Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row) End With For Each C In Rg If C <> "" Then If Not Dict.Exists(C.Value) Then Dict.Add C.Value, C.Value End If End If Next Tblo = Dict.items Call Tri(Tblo, LBound(Tblo), UBound(Tblo)) Me.ComboBox1.List = Tblo End Sub
'---------------------------------------- Sub Tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call Tri(a, g, droi) If gauc < d Then Call Tri(a, gauc, d) End Sub '----------------------------------------
"Dominique" a écrit dans le message de groupe de discussion :
Bonjour Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform (ModificationDistribution) par la liste des nom se trouvant dans la feuille "Distribution" de D2 à la dernière ligne pleine et si possible trier par ordre alphabétique. merci Pour l instant voila ce que j ai fait mais rien n apparait
Un exemple ... il trie les données en ordre croissant !
Tu dois adapter le nom de la feuille de la procédure
où sont tes données et le nom de ton combobox si différent.
'----------------------------------------
Private Sub UserForm_Initialize()
Dim Dict As Object, Tblo As Variant
Dim Rg As Range, C As Range
Set Dict = CreateObject("Scripting.Dictionary")
With Worksheets("Feuil1") 'Nom Feuille à adapter
Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row)
End With
For Each C In Rg
If C <> "" Then
If Not Dict.Exists(C.Value) Then
Dict.Add C.Value, C.Value
End If
End If
Next
Tblo = Dict.items
Call Tri(Tblo, LBound(Tblo), UBound(Tblo))
Me.ComboBox1.List = Tblo
End Sub
'----------------------------------------
Sub Tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub
'----------------------------------------
"Dominique" <dobidon@orange.fr> a écrit dans le message de groupe de discussion :
uAtFRbdEKHA.4608@TK2MSFTNGP02.phx.gbl...
Bonjour
Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform
(ModificationDistribution) par la liste des nom se trouvant dans la
feuille "Distribution" de D2 à la dernière ligne pleine et si possible
trier par ordre alphabétique.
merci
Pour l instant voila ce que j ai fait mais rien n apparait
Un exemple ... il trie les données en ordre croissant !
Tu dois adapter le nom de la feuille de la procédure où sont tes données et le nom de ton combobox si différent. '---------------------------------------- Private Sub UserForm_Initialize() Dim Dict As Object, Tblo As Variant Dim Rg As Range, C As Range Set Dict = CreateObject("Scripting.Dictionary") With Worksheets("Feuil1") 'Nom Feuille à adapter Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row) End With For Each C In Rg If C <> "" Then If Not Dict.Exists(C.Value) Then Dict.Add C.Value, C.Value End If End If Next Tblo = Dict.items Call Tri(Tblo, LBound(Tblo), UBound(Tblo)) Me.ComboBox1.List = Tblo End Sub
'---------------------------------------- Sub Tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call Tri(a, g, droi) If gauc < d Then Call Tri(a, gauc, d) End Sub '----------------------------------------
"Dominique" a écrit dans le message de groupe de discussion :
Bonjour Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform (ModificationDistribution) par la liste des nom se trouvant dans la feuille "Distribution" de D2 à la dernière ligne pleine et si possible trier par ordre alphabétique. merci Pour l instant voila ce que j ai fait mais rien n apparait
Bonjour Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform (ModificationDistribution) par la liste des nom se trouvant dans la feuille "Distribution" de D2 à la dernière ligne pleine et si possible trier par ordre alphabétique. merci Pour l instant voila ce que j ai fait mais rien n apparait
"Dominique" <dobidon@orange.fr> a écrit dans le message de
news:uAtFRbdEKHA.4608@TK2MSFTNGP02.phx.gbl...
Bonjour
Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform
(ModificationDistribution) par la liste des nom se trouvant dans la
feuille "Distribution" de D2 à la dernière ligne pleine et si possible
trier par ordre alphabétique.
merci
Pour l instant voila ce que j ai fait mais rien n apparait
Bonjour Je voudrais alimenter le combobox ChoixNom se trouvant dans un userform (ModificationDistribution) par la liste des nom se trouvant dans la feuille "Distribution" de D2 à la dernière ligne pleine et si possible trier par ordre alphabétique. merci Pour l instant voila ce que j ai fait mais rien n apparait
Le 31/07/2009 14:02, Dominique a écrit : J ai essayé ca :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear ChoixNom.AddItem Worksheets("Distribution").Range("D2:D" & .Range("D65536").End(xlUp).Row) End sub
et ca, mais ca ne marche pas erreur de manip certainement mais je ne vois pas
Private Sub ModificationDistribution_Initialize() Dim Dict As Object, Tblo As Variant Dim Rg As Range, C As Range Set Dict = CreateObject("Scripting.Dictionary") With Worksheets("Distribution") 'Nom Feuille à adapter Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row) End With For Each C In Rg If C <> "" Then If Not Dict.Exists(C.Value) Then Dict.Add C.Value, C.Value End If End If Next Tblo = Dict.items Call Tri(Tblo, LBound(Tblo), UBound(Tblo)) Me.ChoixNom.List = Tblo End Sub
Le 31/07/2009 14:02, Dominique a écrit :
J ai essayé ca :
Private Sub ModificationDistribution_Initialize()
ChoixNom.Clear
ChoixNom.AddItem Worksheets("Distribution").Range("D2:D" &
.Range("D65536").End(xlUp).Row)
End sub
et ca, mais ca ne marche pas erreur de manip certainement mais je ne
vois pas
Private Sub ModificationDistribution_Initialize()
Dim Dict As Object, Tblo As Variant
Dim Rg As Range, C As Range
Set Dict = CreateObject("Scripting.Dictionary")
With Worksheets("Distribution") 'Nom Feuille à adapter
Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row)
End With
For Each C In Rg
If C <> "" Then
If Not Dict.Exists(C.Value) Then
Dict.Add C.Value, C.Value
End If
End If
Next
Tblo = Dict.items
Call Tri(Tblo, LBound(Tblo), UBound(Tblo))
Me.ChoixNom.List = Tblo
End Sub
Le 31/07/2009 14:02, Dominique a écrit : J ai essayé ca :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear ChoixNom.AddItem Worksheets("Distribution").Range("D2:D" & .Range("D65536").End(xlUp).Row) End sub
et ca, mais ca ne marche pas erreur de manip certainement mais je ne vois pas
Private Sub ModificationDistribution_Initialize() Dim Dict As Object, Tblo As Variant Dim Rg As Range, C As Range Set Dict = CreateObject("Scripting.Dictionary") With Worksheets("Distribution") 'Nom Feuille à adapter Set Rg = .Range("D2:D" & .Range("D65536").End(xlUp).Row) End With For Each C In Rg If C <> "" Then If Not Dict.Exists(C.Value) Then Dict.Add C.Value, C.Value End If End If Next Tblo = Dict.items Call Tri(Tblo, LBound(Tblo), UBound(Tblo)) Me.ChoixNom.List = Tblo End Sub
MichDenis
Pour utiliser ceci la méthode AddItem : '----------------------------------- Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") For each c in .Range("D2:D" & .Range("D65536").End(xlUp).Row) ChoixNom.AddItem c.value Next End With End sub '-----------------------------------
Tu pourrais aussi employer ceci :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") ChoixNom.list = .Range("D2:D" & .Range("D65536").End(xlUp).Row).value End With End sub
Il y a aussi :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") ChoixNom.rowsource =.Name & "!" .Range("D2:D" & _ .Range("D65536")(xlUp).Row).address End With End sub
Pour utiliser ceci la méthode AddItem :
'-----------------------------------
Private Sub ModificationDistribution_Initialize()
ChoixNom.Clear
with Worksheets("Distribution")
For each c in .Range("D2:D" & .Range("D65536").End(xlUp).Row)
ChoixNom.AddItem c.value
Next
End With
End sub
'-----------------------------------
Tu pourrais aussi employer ceci :
Private Sub ModificationDistribution_Initialize()
ChoixNom.Clear
with Worksheets("Distribution")
ChoixNom.list = .Range("D2:D" & .Range("D65536").End(xlUp).Row).value
End With
End sub
Il y a aussi :
Private Sub ModificationDistribution_Initialize()
ChoixNom.Clear
with Worksheets("Distribution")
ChoixNom.rowsource =.Name & "!" .Range("D2:D" & _
.Range("D65536")(xlUp).Row).address
End With
End sub
Pour utiliser ceci la méthode AddItem : '----------------------------------- Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") For each c in .Range("D2:D" & .Range("D65536").End(xlUp).Row) ChoixNom.AddItem c.value Next End With End sub '-----------------------------------
Tu pourrais aussi employer ceci :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") ChoixNom.list = .Range("D2:D" & .Range("D65536").End(xlUp).Row).value End With End sub
Il y a aussi :
Private Sub ModificationDistribution_Initialize() ChoixNom.Clear with Worksheets("Distribution") ChoixNom.rowsource =.Name & "!" .Range("D2:D" & _ .Range("D65536")(xlUp).Row).address End With End sub