Taille d'une collection

solquagerius

XLDnaute Junior
Bonjour,

J'essaie d'utiliser une collection pour mettre mes objets... mais ca a l'air d'être limité à 256 items. C'est normal ? Y'a t-il un moyen de changer si c'est le cas ?
Merci.
 

solquagerius

XLDnaute Junior
Re : Taille d'une collection

Voici la classe que j'ai écrite :
Code:
Option Explicit

Private Znombre As Integer

Public Property Let Nombre(value As Integer)
    Znombre = value
End Property
Public Property Get Nombre() As Integer
    Nombre = Znombre
End Property

et dans un module :
Code:
Option Explicit

Sub chargement()
    Dim i As Integer
    Dim doc As Object
    Dim collec As Collection
    Dim ob As Class1
    
    Set doc = ThisWorkbook.Sheets("Sheet1")
    Set collec = New Collection
    For i = 1 To doc.Cells(65536, 1).End(xlUp).Row
        Set ob = New Class1
        ob.Nombre = doc.Cells(i, 1)
        collec.Add ob
    Next
    
    Set doc = Nothing
    Set ob = Nothing
End Sub

J'ai rempli 260 cellules, mais quand je regarde la collection, il n'y a que 256 items...

PS: je peux pas donner le fichier... confidentiel :cool:
 

solquagerius

XLDnaute Junior
Re : Taille d'une collection

Bonjour,
Je relance la discussion que j'ai commencé y'a... 2 ans déjà... (je me fais vieux :p)
Y'a t-il une taille limite pour les collections ? genre 65535 ? pour les 256 items, j'ai la réponse, c'est la limite de l'espion... mais on peut en mettre plus. Mais combien ?
En fait j'essaie de mettre 230 000 entrées :)
Merchi bien !
 

MJ13

XLDnaute Barbatruc
Re : Taille d'une collection

Bonjour Solquagerius, Job

Le problème, comme souvent sur XLD, est que si tu ne dis pas ce que tu veux faire, on risque de tourner en rond pendant encore 2 ans.

Alors il nous faudrait, aller,soyons direct, pour que tu n'attendes pas 2 ans de plus, un fichier :confused:
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Taille d'une collection

Bonjour

230 000 c'est possible

Vois le fichier joint
tester successivement les macros
cree_collec()
Sub lit_lit_limite_collection()
Sub lit_valeur_collection()

Edit : Salut MJ13
 

Pièces jointes

  • test_collection.xls
    32.5 KB · Affichages: 62

solquagerius

XLDnaute Junior
Re : Taille d'une collection

Bonjour MJ13,

le problème est toujours le même... toujours confidentiel :p je peux pas donner de fichiers.
Le but est de faire du mapping rapide : dans une feuille excel (en fait y'a plusieurs feuilles), dans une colonne on a un numéro, et dans la deuxième colonne un autre numéro qui est lié au 1er. Je veux mettre ce deuxième numéro dans une collection avec en index le premier numéro :)

Dans une deuxième partie du programme, j'utilise cette collection avec l'index pour retrouver le numéro lié.

En gros, deux colonnes A et B qui contiennent des numéros :
123 456
246 6810

je rempli ma collection, et j'obtiendrai après C(456) = 123 et C(6810) = 246.

Ca j'y arrive. Par contre, comme je l'ai dit plus haut, y'a 230 000 numéros... est-ce que je peux mettre tout ça dans une seule collection ?

EDIT : merci Pierrejean.
En fait je pense que la limite porte plus sur la mémoire que sur le nombre (bien que ce soit lié à un moment ou à un autre :p). Microsoft indique 1GB pour excel 2003
 

pierrejean

XLDnaute Barbatruc
Re : Taille d'une collection

Re

essaie ceci

Code:
Public coll As Collection
Sub cree_coll()
Set coll = New Collection
For n = 0 To 230000
  coll.Add n, CStr(230000 - n)
Next n
End Sub
Sub lit_coll()
n = 200000
MsgBox (coll(n))
End Sub

qui te permettra de savoir si la capacité en memoire bloque
 

solquagerius

XLDnaute Junior
Re : Taille d'une collection

Merci pierrejean,
j'ai abandonné cette méthode, j'ai l'impression que plus on en met, plus ça met de temps pour ajouter une autre entrée... du coup, ca devient très très très long au bout d'un certain temps (bien qu'on puisse en mettre 230 000 :D).
Merci pour vos réponses !
Pierre
 

MJ13

XLDnaute Barbatruc
Re : Taille d'une collection

Re, Bonjour PierreJean, JB

Les tableaux, c'est pas trop mon truc :eek:, mais regarde ce que tu pourrais faire :).

Sur XL2007, tu peux aller jusque plus d'1 million de lignes.

Merci JB, Je crois que le Dictionary que je connaîs grâce à toi d'ailleurs, mais je le maîtrise encore moins:eek:.
 

Pièces jointes

  • Public.xls
    35.5 KB · Affichages: 81
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Taille d'une collection

Re

Ah et bien , j'ai une bonne nouvelle, j'ai retrouvé de notre ami JM (allias staple1600), un fichier qu'il avait adapté en 2010 avec du "scripting dictionary", c'est complexe mais balèze :eek:.
 

Pièces jointes

  • XLD_PERMUT Staple.zip
    16.4 KB · Affichages: 57

Discussions similaires

Réponses
26
Affichages
965

Statistiques des forums

Discussions
312 448
Messages
2 088 504
Membres
103 872
dernier inscrit
Gufre