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

estnum(c)

4 réponses
Avatar
Jacquouille
Bonjour

Je désire effacer d'éventuels résultats de calculs précédents avec :
If IsNumber(c) Then [c] = ""

Il cale sur le IsNumber ......

pouvez-vous me dépanner, svp ?
Mille mercis

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."

4 réponses

Avatar
isabelle
salut Jacques,

IF IsNumeric (c) Then [c] = ""

isabelle
------------------------------------------------------------------

Le 2011-03-24 07:11, Jacquouille a écrit :
Bonjour

Je désire effacer d'éventuels résultats de calculs précédents avec :
If IsNumber(c) Then [c] = ""

Il cale sur le IsNumber ......

pouvez-vous me dépanner, svp ?
Mille mercis

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
Avatar
MichD
Bonjour,

Il est préférable d'utiliser la formule de la feuille de calcul

If Application.IsNumber(Range("A1")) = True Then



Quelques notes sur la fonction IsNumeric :

Pour ceux qui désirent un peu d'explication pourquoi
Msgbox IsNumeric("($1,23$)") retourne Vrai...

Les "programmeurs" ont considéré que la fonction devait
tenir compte des parenthèses (les nombres négatifs dans
certains formats de cellules) et du symbole monétaire qu'il
soit placé au début ou à la fin de la séquence du nombre
indiqué pour tenir compte des divers formats possibles.

Par exemple, une cellule pourrait contenir la valeur ($1.25)
les parenthèses (valeur négative) et le signe $ étant un format
de cellule.

En VBA, la propriété "Text" d'un "Range" retourne ceci : ($1.25)
x = Range("A1").Text
x = "($1.25)"

Et la fonction Msgbox isnumeric(x) retournerait Vrai
on pourrait aussi écrire directement Msgbox isNumeric(Range("A1").text)

Par exemple contenant en dur ($1,25) s'affiche à gauche dans la cellule
mais Msgbox isNumeric(Range("A1").Value) retourne Vrai
Mais x = Application.IsNumber([A1]) retourne Faux
Et pour cause, l'interface de calcul considère cette valeur comme du Texte
(affichage à gauche) pourquoi, la fonction "IsNumber" devrait en faire autrement ?

Selon les paramètres régionaux, il y a bien sûr des nuances...
Si je tape en dur dans une cellule (1,25$) , Excel applique le
format monétaire à la cellule. Résultat, le contenu de la cellule
est 1,25 et les parenthèses et le signe monétaire font désormais
partie du format de cellule.

Voilà! selon ce que l'on veut faire et selon son application, la
fonction IsNumeric() peut-être désarmante...Il faut être attentif!


==================================== Il y a aussi ce cas :

Dans une cellule au format standard, j'ai ceci comme contenu : 635d52
Il n'y a aucun autre caractère.

En VBA, j'utilise la fonction "IsNumeric(Range("A1"))". À mon étonnement,
Excel me dit que c'est une valeur numérique. Il évalue l'expression 635d52
comme étant égal à 6.35E+54 .

ca indique la double précision dans la notation exponentielle. C'est hérité du Fortran
http://www.math.hawaii.edu/lab/197/fortran/fort3.htm#double


C'était mes deux cents sur le sujet !


MichD
--------------------------------------------
Avatar
Jacquouille
Bonjour Denis
Et pour faire bref, dans mon cas bien précis de vouloir effacer le contenu
des cellules "NUM", y a pas de danger qu'il se plante ou m'induise en
erreur?
Merci pour ta bonne explication.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
imfafs$4dt$

Bonjour,

Il est préférable d'utiliser la formule de la feuille de calcul

If Application.IsNumber(Range("A1")) = True Then



Quelques notes sur la fonction IsNumeric :

Pour ceux qui désirent un peu d'explication pourquoi
Msgbox IsNumeric("($1,23$)") retourne Vrai...

Les "programmeurs" ont considéré que la fonction devait
tenir compte des parenthèses (les nombres négatifs dans
certains formats de cellules) et du symbole monétaire qu'il
soit placé au début ou à la fin de la séquence du nombre
indiqué pour tenir compte des divers formats possibles.

Par exemple, une cellule pourrait contenir la valeur ($1.25)
les parenthèses (valeur négative) et le signe $ étant un format
de cellule.

En VBA, la propriété "Text" d'un "Range" retourne ceci : ($1.25)
x = Range("A1").Text
x = "($1.25)"

Et la fonction Msgbox isnumeric(x) retournerait Vrai
on pourrait aussi écrire directement Msgbox isNumeric(Range("A1").text)

Par exemple contenant en dur ($1,25) s'affiche à gauche dans la cellule
mais Msgbox isNumeric(Range("A1").Value) retourne Vrai
Mais x = Application.IsNumber([A1]) retourne Faux
Et pour cause, l'interface de calcul considère cette valeur comme du Texte
(affichage à gauche) pourquoi, la fonction "IsNumber" devrait en faire
autrement ?

Selon les paramètres régionaux, il y a bien sûr des nuances...
Si je tape en dur dans une cellule (1,25$) , Excel applique le
format monétaire à la cellule. Résultat, le contenu de la cellule
est 1,25 et les parenthèses et le signe monétaire font désormais
partie du format de cellule.

Voilà! selon ce que l'on veut faire et selon son application, la
fonction IsNumeric() peut-être désarmante...Il faut être attentif!


==================================== Il y a aussi ce cas :

Dans une cellule au format standard, j'ai ceci comme contenu : 635d52
Il n'y a aucun autre caractère.

En VBA, j'utilise la fonction "IsNumeric(Range("A1"))". À mon étonnement,
Excel me dit que c'est une valeur numérique. Il évalue l'expression 635d52
comme étant égal à 6.35E+54 .

ca indique la double précision dans la notation exponentielle. C'est hérité
du Fortran
http://www.math.hawaii.edu/lab/197/fortran/fort3.htm#double


C'était mes deux cents sur le sujet !


MichD
--------------------------------------------
Avatar
Jacquouille
Merci Isabelle

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
imf9lg$1e3$

salut Jacques,

IF IsNumeric (c) Then [c] = ""

isabelle
------------------------------------------------------------------

Le 2011-03-24 07:11, Jacquouille a écrit :
Bonjour

Je désire effacer d'éventuels résultats de calculs précédents avec :
If IsNumber(c) Then [c] = ""

Il cale sur le IsNumber ......

pouvez-vous me dépanner, svp ?
Mille mercis

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."