Variables | ||
---|---|---|
Inscription: 25/10/2011
Messages:
12
Système d'exploitation: PC Version Excel utilisée: 2003, 2007, 2010 |
Posté le : 05-12-2014 15h28
Bonjour à tous,
Je me permets de soumettre mon problème aux experts de ce forum.
J'ai un module VBA qui traite une grande quantité de calcul. Pour effectuer ces calculs j'utilise énormément de variables qui sont liées à une feuille de calcul.
Par fainéantise et au vue de leur très grands nombres, je ne les ai pas déclaré et me suis évidement affranchi de la commande Option Explicit en tête de module. De ce fait l'ensemble de mes variables sont par défaut de type Variant.
Il est évident qu'on est bien loin de ce qu'il faudrait faire pour optimiser le code et notamment le temps de calcul et l'utilisation de la mémoire.
Mon problème est que plusieurs de ces variables contiennent des valeurs décimales mais que VBA les traitent comme des entiers. Il en résulte de très grosses approximations dans le résultat de mes calculs.
J'ai alors essayé de déclarer uniquement les variables à valeurs décimale, en utilisant le type Simple, Long ou Decimal mais sans plus de succès Excel et VBA les traitent toujours comme des entiers.
Avez vous des suggestions pour contourner ce problème?
Merci d'avance pour votre aide.
Cordialement, Fabrice |
|
|
Re: Variables | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 05-12-2014 16h57
Bonjour Fabrice,
Si tu joignais un petit fichier exemple ce serait plus facile.
Cordialement,
Guy |
|
|
Re: Variables | ||
---|---|---|
Inscription: 25/10/2011
Messages:
12
Système d'exploitation: PC Version Excel utilisée: 2003, 2007, 2010 |
Posté le : 07-12-2014 07h09
Bonjour Guy,
Merci pour ton aide.
Au final j'ai trouvé le problème par moi même en voulant créer le fichier d'exemple!
Pour aller chercher la valeur de la variable dans ma feuille, j'utiliser la ligne de code suivante:
Variable1 = Val(Worksheets("Feuil1").cells(1,2))
Dans ce cas, ma variable était prise par VBA à la valeur de l'entier inférieur.
Il suffisait de coder comme ceci pour ne plus avoir de problème:
Encore merci pour avoir pris le temps d'essayer de comprendre mon problème.
Cordialement, Fabrice |
|
|