Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
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
jero
Salut, Où est l'erreur ? La procédure Tri existe ? Moi, ça fonctionne... "DT" a écrit dans le message de news:
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Salut,
Où est l'erreur ? La procédure Tri existe ?
Moi, ça fonctionne...
"DT" <direction-ternoise@wanadoo.fr> a écrit dans le message de news:
exWzynEpKHA.1892@TK2MSFTNGP02.phx.gbl...
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
Salut, Où est l'erreur ? La procédure Tri existe ? Moi, ça fonctionne... "DT" a écrit dans le message de news:
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
JB
Bonjour,
Set f = Sheets("Feuil1") Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Bonjour,
Set f = Sheets("Feuil1")
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
On 2 fév, 21:54, "DT" <direction-terno...@wanadoo.fr> wrote:
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
Set f = Sheets("Feuil1") Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
DT
Bonjour à vous 2
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela est possible. Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement() Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
End Sub
Merci de votre aide
Bonjour à vous 2
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela
est possible.
Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela est possible. Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement() Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
End Sub
Merci de votre aide
Misange
Bonjour
DT a écrit :
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
le fait d'écrire la seconde ligne efface la valeur du 1° c donc que veux tu faire ??
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
tu veux la même liste temporaire dans tes deux combo ? c'est ce que tu fais là.
si tu veux remplir 5 combos avec 5 listes différentes venant de 5 colonnes différentes, le fait de balayer ta feuille ligne par ligne ne te fais rien gagner en vitesse par rapport à les balayer par colonne.
Misange
Bonjour
DT a écrit :
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
le fait d'écrire la seconde ligne efface la valeur du 1° c
donc que veux tu faire ??
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
Me.Combo2.List = temp
tu veux la même liste temporaire dans tes deux combo ? c'est ce que tu
fais là.
si tu veux remplir 5 combos avec 5 listes différentes venant de 5
colonnes différentes, le fait de balayer ta feuille ligne par ligne ne
te fais rien gagner en vitesse par rapport à les balayer par colonne.
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
le fait d'écrire la seconde ligne efface la valeur du 1° c donc que veux tu faire ??
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
tu veux la même liste temporaire dans tes deux combo ? c'est ce que tu fais là.
si tu veux remplir 5 combos avec 5 listes différentes venant de 5 colonnes différentes, le fait de balayer ta feuille ligne par ligne ne te fais rien gagner en vitesse par rapport à les balayer par colonne.
Misange
Daniel.C
Bonjjour. A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le code de l'userform. Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Bonjjour.
A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le
code de l'userform.
Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
Bonjjour. A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le code de l'userform. Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Daniel.C
Oups. A côté de la plaque. Daniel
Bonjjour. A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le code de l'userform. Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Oups. A côté de la plaque.
Daniel
Bonjjour.
A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le code
de l'userform.
Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
Bonjjour. A tout hasard, l'emploi de "Me" suppose que ta macro se trouve dans le code de l'userform. Daniel
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Daniel.C
Essaie ce code. Il faut que les plages de connées soient régulièrement espacées, et que les combos aient un nom générique (ComboBox1, ComBox2 etc.), sinon, ça commplique.
Private Sub Charge1() Set f = Feuil2 Set Mondico = CreateObject("Scripting.Dictionary") For i = 1 To 5 Mondico.RemoveAll For Each c In Range(f.[C2], f.[C65000].End(xlUp)).Offset(, i - 1) If c.Value <> "" Then Mondico.Item(c.Value) = c.Value Next c temp = Mondico.items Call tri(temp, LBound(temp), UBound(temp)) Me.Controls("Combobox" & i).List = temp Next i Set Mondico = Nothing End Sub
Daniel
Bonjour à vous 2
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela est possible. Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement() Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
End Sub
Merci de votre aide
Essaie ce code. Il faut que les plages de connées soient régulièrement
espacées, et que les combos aient un nom générique (ComboBox1, ComBox2
etc.), sinon, ça commplique.
Private Sub Charge1()
Set f = Feuil2
Set Mondico = CreateObject("Scripting.Dictionary")
For i = 1 To 5
Mondico.RemoveAll
For Each c In Range(f.[C2], f.[C65000].End(xlUp)).Offset(, i - 1)
If c.Value <> "" Then Mondico.Item(c.Value) = c.Value
Next c
temp = Mondico.items
Call tri(temp, LBound(temp), UBound(temp))
Me.Controls("Combobox" & i).List = temp
Next i
Set Mondico = Nothing
End Sub
Daniel
Bonjour à vous 2
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela
est possible.
Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Essaie ce code. Il faut que les plages de connées soient régulièrement espacées, et que les combos aient un nom générique (ComboBox1, ComBox2 etc.), sinon, ça commplique.
Private Sub Charge1() Set f = Feuil2 Set Mondico = CreateObject("Scripting.Dictionary") For i = 1 To 5 Mondico.RemoveAll For Each c In Range(f.[C2], f.[C65000].End(xlUp)).Offset(, i - 1) If c.Value <> "" Then Mondico.Item(c.Value) = c.Value Next c temp = Mondico.items Call tri(temp, LBound(temp), UBound(temp)) Me.Controls("Combobox" & i).List = temp Next i Set Mondico = Nothing End Sub
Daniel
Bonjour à vous 2
Je re formule ma question qui apparement n'a pas été comprise.
J'aimerais regrouper ces 2 codes (en réalité j'en ai 5) en un seul si cela est possible. Vous pouvez vous apercevoir que la différence viens des lignes :
>>For Each c In Range(f.[C2], f.[C65000].End(xlUp))
Me.Combo1.List = temp
J'aimerais les regrouper dans le genre :
Private Sub Regroupement() Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp)) For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp Me.Combo2.List = temp
End Sub
Merci de votre aide
michdenis
Bonjour,
Une autre approche très rapide pour remplir plusieurs combobox avec des données sur une feuille de calcul.
L'utilisation ADO (Activex Data Object) On doit ajoute à partir du menu de la fenêtre de l'éditeur de code, outils / référence / cocher : "Activex Data Object 2.8 Library Objects"
Voici un exemple : http://cjoint.com/?cdlGsaxbfL
"DT" a écrit dans le message de groupe de discussion :
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
Bonjour,
Une autre approche très rapide pour remplir plusieurs
combobox avec des données sur une feuille de calcul.
L'utilisation ADO (Activex Data Object)
On doit ajoute à partir du menu de la fenêtre de l'éditeur de code,
outils / référence /
cocher : "Activex Data Object 2.8 Library Objects"
Voici un exemple :
http://cjoint.com/?cdlGsaxbfL
"DT" <direction-ternoise@wanadoo.fr> a écrit dans le message de groupe de discussion :
exWzynEpKHA.1892@TK2MSFTNGP02.phx.gbl...
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes.
Une idée ?
Merci de votre aide
David
Private Sub Charge1()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[C2], f.[C65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo1.List = temp
End Sub
Private Sub Charge2()
Set f = Feuil2
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range(f.[J2], f.[J65000].End(xlUp))
If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
Next c
temp = MonDico.items
Call Tri(temp, LBound(temp), UBound(temp))
Me.Combo2.List = temp
End Sub
Une autre approche très rapide pour remplir plusieurs combobox avec des données sur une feuille de calcul.
L'utilisation ADO (Activex Data Object) On doit ajoute à partir du menu de la fenêtre de l'éditeur de code, outils / référence / cocher : "Activex Data Object 2.8 Library Objects"
Voici un exemple : http://cjoint.com/?cdlGsaxbfL
"DT" a écrit dans le message de groupe de discussion :
Bonsoir à tous
Je n'arrive pas à compiler ces deux codes. Une idée ? Merci de votre aide David
Private Sub Charge1() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[C2], f.[C65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo1.List = temp End Sub
Private Sub Charge2() Set f = Feuil2 Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[J2], f.[J65000].End(xlUp)) If c.Value <> "" Then MonDico.Item(c.Value) = c.Value Next c temp = MonDico.items Call Tri(temp, LBound(temp), UBound(temp)) Me.Combo2.List = temp End Sub
DT
Bonjour et merci beaucoup à tous. Le code de Daniel me convient bien en adaptant mes colonnes.
Bonjour et merci beaucoup à tous. Le code de Daniel me convient bien en
adaptant mes colonnes.