Pb sur le test de la valeur numérique d'une cellule

Le
olivierc2003
Bonjour,

J'utilise Excel 2003 sur un Windows XP Pro SP2

J'ai dans une colonne une srie de valeurs par exemple :

1G28
2G05
1A37
2D04
1E05

Le pb survient quand on a la valeur 1E05, qu'Excel interprte comme
1,00E+05 (soit 100000 si on applique le format Standard)

Je veux donc tester dans mon traitement si la cellule active dans
laquelle je me positionne contient une valeur numrique. Dans mon
code, j'ai crit le test suivant :

Contenu = ""
Contenu = ActiveCell.Value
If IsNumeric(Contenu) Then
'Mon traitement
End if

Cela fonctionne trs bien pour mes valeurs, il rentre dans le IF pour
la valeur 1,00E+05.

Le seul problme est pour la valeur 2D04 qu'il considre galement
comme du numrique . Je ne comprends vraiment pas pourquoi .
D'autant plus qu'en dbug il me donne bien "2D04" comme valeur pour ma
variable Contenu et 100000 pour ma variable Contenu dans le cas de ma
cellule 1E05.


Si quelqu'un peut m'expliquer pourquoi 2D04 passe pour du numrique,
je serai heureux !

Merci tous
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4426981
Bonjour.
Trouvé ça dans un post de Tom Ogilvy :
E est ou était utilisé pour indiquer le début de l'exosant pour un nombre en
simple précision.
D est ou était utilisé pour indiquer le début de l'exosant pour un nombre en
double précision.
Une relique des premiers temps de Visual Basic.
Donc traite le D comme le E.
Note : le debug donne bien 2D04, mais 2D04*1 donne 20000.
Cordialement.
Daniel

Bonjour,

J'utilise Excel 2003 sur un Windows XP Pro SP2

J'ai dans une colonne une série de valeurs par exemple :

1G28
2G05
1A37
2D04
1E05

Le pb survient quand on a la valeur 1E05, qu'Excel interprète comme
1,00E+05 (soit 100000 si on applique le format Standard)

Je veux donc tester dans mon traitement si la cellule active dans
laquelle je me positionne contient une valeur numérique. Dans mon
code, j'ai écrit le test suivant :

Contenu = ""
Contenu = ActiveCell.Value
If IsNumeric(Contenu) Then
'Mon traitement
End if

Cela fonctionne très bien pour mes valeurs, il rentre dans le IF pour
la valeur 1,00E+05.

Le seul problème est pour la valeur 2D04 qu'il considère également
comme du numérique . Je ne comprends vraiment pas pourquoi ....
D'autant plus qu'en débug il me donne bien "2D04" comme valeur pour ma
variable Contenu et 100000 pour ma variable Contenu dans le cas de ma
cellule 1E05.


Si quelqu'un peut m'expliquer pourquoi 2D04 passe pour du numérique,
je serai ... heureux !

Merci à tous
Publicité
Poster une réponse
Anonyme