Compilation de code

Le
DT
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jero
Le #21116451
Salut,
Où est l'erreur ? La procédure Tri existe ?
Moi, ça fonctionne...
"DT"
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
Le #21116551
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

http://boisgontierjacques.free.fr/pages_site/formulairelistesansdoublons.ht m#Dictionnary


JB


On 2 fév, 21:54, "DT"
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
Le #21116641
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
Misange
Le #21116721
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
Daniel.C
Le #21117151
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
Le #21117281
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




Daniel.C
Le #21117351
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
Le #21117491
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"
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
Le #21122061
Bonjour et merci beaucoup à tous. Le code de Daniel me convient bien en
adaptant mes colonnes.
Publicité
Poster une réponse
Anonyme