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."
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
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
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
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
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$1@speranza.aioe.org...
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
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