J'ai créé une classe qui est une collection d'années.
La première fois, chaque année est ajoutée dans l'ordre (évidemment). Mais
si j'ajoute une année, j'aimerais qu'elle se place dans le bon ordre de façon
qu'apres si je parcoure la collection item par item chaque année se trouve à
la bonne place, comme cela :
Au début :
cAnnees(1).Annee = 2000
cAnnees(2).Annee = 2002
cAnnees(3).Annee = 2003
J'ajoute 2001 et ensuite :
cAnnees(1).Annee = 2000
cAnnees(2).Annee = 2001
cAnnees(3).Annee = 2002
cAnnees(4).Annee = 2003
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
JB
Bonsoir,
http://cjoint.com/?iouughXvOW
Exemple de collection triée:
Sub CollectionSansDoublonsTrié() Dim Maliste As New Collection t = Timer Maliste.Add Int(Rnd * 10000) For i = 1 To 2000 n = Maliste.count aléa = Int(Rnd * 10000) If x > Maliste(n) Then Maliste.Add after:=n, Item:=aléa, key:=CStr(aléa) Else j = 1 Do While j < n And aléa > Maliste(j) j = j + 1 Loop On Error Resume Next Maliste.Add before:=j, Item:=aléa, key:=CStr(aléa) End If Next i
MsgBox Timer - t MsgBox "Nb éléments:" & Maliste.count For i = 1 To Maliste.count MsgBox Maliste(i) Next i End Sub
Cordialement JB
Bonjour,
J'ai créé une classe qui est une collection d'années.
La première fois, chaque année est ajoutée dans l'ordre (évidemme nt). Mais si j'ajoute une année, j'aimerais qu'elle se place dans le bon ordre de façon qu'apres si je parcoure la collection item par item chaque année se tro uve à la bonne place, comme cela :
Au début : cAnnees(1).Annee = 2000 cAnnees(2).Annee = 2002 cAnnees(3).Annee = 2003
J'ajoute 2001 et ensuite : cAnnees(1).Annee = 2000 cAnnees(2).Annee = 2001 cAnnees(3).Annee = 2002 cAnnees(4).Annee = 2003
Merci pour votre aide.
-- Patrick
Bonsoir,
http://cjoint.com/?iouughXvOW
Exemple de collection triée:
Sub CollectionSansDoublonsTrié()
Dim Maliste As New Collection
t = Timer
Maliste.Add Int(Rnd * 10000)
For i = 1 To 2000
n = Maliste.count
aléa = Int(Rnd * 10000)
If x > Maliste(n) Then
Maliste.Add after:=n, Item:=aléa, key:=CStr(aléa)
Else
j = 1
Do While j < n And aléa > Maliste(j)
j = j + 1
Loop
On Error Resume Next
Maliste.Add before:=j, Item:=aléa, key:=CStr(aléa)
End If
Next i
MsgBox Timer - t
MsgBox "Nb éléments:" & Maliste.count
For i = 1 To Maliste.count
MsgBox Maliste(i)
Next i
End Sub
Cordialement JB
Bonjour,
J'ai créé une classe qui est une collection d'années.
La première fois, chaque année est ajoutée dans l'ordre (évidemme nt). Mais
si j'ajoute une année, j'aimerais qu'elle se place dans le bon ordre de façon
qu'apres si je parcoure la collection item par item chaque année se tro uve à
la bonne place, comme cela :
Au début :
cAnnees(1).Annee = 2000
cAnnees(2).Annee = 2002
cAnnees(3).Annee = 2003
J'ajoute 2001 et ensuite :
cAnnees(1).Annee = 2000
cAnnees(2).Annee = 2001
cAnnees(3).Annee = 2002
cAnnees(4).Annee = 2003
Sub CollectionSansDoublonsTrié() Dim Maliste As New Collection t = Timer Maliste.Add Int(Rnd * 10000) For i = 1 To 2000 n = Maliste.count aléa = Int(Rnd * 10000) If x > Maliste(n) Then Maliste.Add after:=n, Item:=aléa, key:=CStr(aléa) Else j = 1 Do While j < n And aléa > Maliste(j) j = j + 1 Loop On Error Resume Next Maliste.Add before:=j, Item:=aléa, key:=CStr(aléa) End If Next i
MsgBox Timer - t MsgBox "Nb éléments:" & Maliste.count For i = 1 To Maliste.count MsgBox Maliste(i) Next i End Sub
Cordialement JB
Bonjour,
J'ai créé une classe qui est une collection d'années.
La première fois, chaque année est ajoutée dans l'ordre (évidemme nt). Mais si j'ajoute une année, j'aimerais qu'elle se place dans le bon ordre de façon qu'apres si je parcoure la collection item par item chaque année se tro uve à la bonne place, comme cela :
Au début : cAnnees(1).Annee = 2000 cAnnees(2).Annee = 2002 cAnnees(3).Annee = 2003
J'ajoute 2001 et ensuite : cAnnees(1).Annee = 2000 cAnnees(2).Annee = 2001 cAnnees(3).Annee = 2002 cAnnees(4).Annee = 2003