Une erreur intéressante

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

Pour marque-pages : Permaliens.

4 réponses à Une erreur intéressante

  1. Olive dit :

    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.

  2. Merci pour l’information.

    Effectivement, je pense que c’est intéressant à savoir.

    Gaetan

  3. HANDELSMAN dit :

    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 !

  4. Gaetan Mourmant dit :

    Entièrement d’accord avec M. H. !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.