Pb sur le test de la valeur numérique d'une cellule
1 réponse
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
<olivierc2003@yahoo.fr> a écrit dans le message de news:
1169218876.495245.310490@l53g2000cwa.googlegroups.com...
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 !
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 !