Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

1 réponse
Avatar
olivierc2003
Bonjour,

J'utilise Excel 2003 sur un Windows XP Pro SP2

J'ai dans une colonne une s=E9rie de valeurs par exemple :

1G28
2G05
1A37
2D04
1E05

Le pb survient quand on a la valeur 1E05, qu'Excel interpr=E8te 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=E9rique. Dans mon
code, j'ai =E9crit le test suivant :

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

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

Le seul probl=E8me est pour la valeur 2D04 qu'il consid=E8re =E9galement
comme du num=E9rique . Je ne comprends vraiment pas pourquoi ....
D'autant plus qu'en d=E9bug 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=E9rique,
je serai ... heureux !=20

Merci =E0 tous

1 réponse

Avatar
Daniel
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
a écrit dans le message de news:

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