Par habitude, il arrive souvent qu'on définisse une variable se référant à une recherche de ligne (par exemple la dernière ligne d'une plage) comme un entier (Integer) :
Dim l As Integer
Récemment, j'ai résolu un bug d'une visiteuse de PolyKromy, qui avait défini cette variable comme entière et qui recherchait des informations dans une base de 35000 enregistrements.
Comme la variable entière n'autorise des valeurs comprises qu'entre -32 768 et 32 767, elle obtenait une erreur.
Il suffit juste alors de définir la variable comme entier long (Long) :
Dim l As Long
ce qui permet d'avoir des valeurs allant de -2 147 483 648 à 2 147 483 647.
A bientôt.
Gaetan Mourmant
J'ajouterais à ton commentaire qu'il faut aussi se méfier des listes vb qui sont limitées à 32000 elements. Un bug que j'ai eut : un dossier avec les photos d'une société, grosse société, donc 45000 photos. l'index de la boite affichant le nom des photos repassait en négatif après 32768, directement à -32767, puis réaugmentait. En fait, vous pouvez mettre plus de 32768 eléments, mais n'accèderez pas au 32769 eme et suivants. Joie windaubienne s'il en est.
Merci pour l'information.
Effectivement, je pense que c'est intéressant à savoir.
Gaetan
définir une variable comme Integer plutôt que Long ne sert plus à rien depuis que la puissance de calcul le permet.
Je le déconseille fortement !
Entièrement d'accord avec M. H. !