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

Nombre de digit du format de cellule.

8 réponses
Avatar
Pyngu
Bonjour tout le monde.

Voilà mon problème (que j'ai déjà à moitié résolu) :

Je voudrait récupéré le nombre de chiffres avant et après la virgules
qui sont définis par des zéro dans le format de cellule.

Je développe:
Un tableau avec une colonne remplie de chiffre dont le format de cellule
est du type "000000,0000" avec une variation du nombre de "0" avant et
après la virgule.
Je voudrais pouvoir avoir deux colonnes avec la première qui m'indique
le nombre de digit ("0") avant la virgule et la deuxième le nombre de
digit après la virgule.

Pour après la virgule j'ai trouver une méthode :
=DROITE(CELLULE("format";E16);1)
Si on décompose, CELLULE("format";E16) me donne Fx où x est le nombre de
décimales.
Et comme je n'ai jamais plus de 6 décimales, je me limite au caractère
de droite.

Si quelqu'un peut éclairer ma lanterne pour les "0" avant la virgule, ce
serait très sympa ;)

8 réponses

Avatar
MichelB
Bonsoir

Je ne sais pas si c'est ce que tu veux, mais pour moi, je mettrais :

Pour les nombres entiers

=NBCAR(GAUCHE(B5;TROUVE(",";B5)-1))

et pour les décimales

=NBCAR(DROITE(B5;NBCAR(B5)-TROUVE(",";B5)))

--
Salut
Michel ---- ;o)


Pyngu wrote:
Bonjour tout le monde.

Voilà mon problème (que j'ai déjà à moitié résolu) :

Je voudrait récupéré le nombre de chiffres avant et après la virgules
qui sont définis par des zéro dans le format de cellule.

Je développe:
Un tableau avec une colonne remplie de chiffre dont le format de
cellule est du type "000000,0000" avec une variation du nombre de "0"
avant et après la virgule.
Je voudrais pouvoir avoir deux colonnes avec la première qui m'indique
le nombre de digit ("0") avant la virgule et la deuxième le nombre de
digit après la virgule.

Pour après la virgule j'ai trouver une méthode :
=DROITE(CELLULE("format";E16);1)
Si on décompose, CELLULE("format";E16) me donne Fx où x est le nombre
de décimales.
Et comme je n'ai jamais plus de 6 décimales, je me limite au caractère
de droite.

Si quelqu'un peut éclairer ma lanterne pour les "0" avant la virgule,
ce serait très sympa ;)


Avatar
Pyngu
Bonsoir

Je ne sais pas si c'est ce que tu veux, mais pour moi, je mettrais :

Pour les nombres entiers

=NBCAR(GAUCHE(B5;TROUVE(",";B5)-1))

et pour les décimales

=NBCAR(DROITE(B5;NBCAR(B5)-TROUVE(",";B5)))



Merci mais ce que tu me donnes comme méthode me permet juste de
retrouver le nombre de chiffres entrés dans la cellule (avant/après la
virgule).

Hors ce que je cherche c'est de retrouver les informations du "format de
cellule", ce qui fait que même si la cellule n'a pas de valeur, je doit
retrouver le nombre de zéro avant/après la virgule qui sont 'prévu' dans
le format de cellule.

D'autre idées ?

Avatar
Modeste
Bonsour® Pyngu avec ferveur ;o))) vous nous disiez :

Hors ce que je cherche c'est de retrouver les informations du "format de
cellule", ce qui fait que même si la cellule n'a pas de valeur, je doit
retrouver le nombre de zéro avant/après la virgule qui sont 'prévu' dans
le format de cellule.


une approche ;o)))
voir fonction CELLULE("Format";A1)
Nb: ne semble pas reconnaitre les formats personnalisés :-(((

Si le format Microsoft Excel est La fonction CELLULE renvoie
Général "S"
0 "F0"
# ##0 "P0"
0.00 "F2"
# ##0,00 "P2"
# ##0 F;-# ##0 F "C0"
# ##0 F;[Rouge]-# ##0 F "M0-"
# ##0,00 F;# ##0,00 F "M2"
# ##0,00 F;[Rouge]-# ##0,00 F "M2-"
0% "%0"
0.00% "%2"
0,00E+00 "S2"
#" "?/? ou #" "??/?? "S"
m/j/aa, m/j/aa h:mm ou mm/jj/aa "D4"
j-mmm-aa ou jj-mmm-aa "D1"
j-mmm ou jj-mmm "D2"
mmm-aa "D3"
mm/jj "D5"
h:mm AM/PM "H2"
h:mm:ss AM/PM "H1"
h:mm "H4"
h:mm:ss "H3"

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Pyngu
Bonsour® Pyngu avec ferveur ;o))) vous nous disiez :

Hors ce que je cherche c'est de retrouver les informations du "format de
cellule", ce qui fait que même si la cellule n'a pas de valeur, je doit
retrouver le nombre de zéro avant/après la virgule qui sont 'prévu' dans
le format de cellule.


une approche ;o)))
voir fonction CELLULE("Format";A1)
Nb: ne semble pas reconnaitre les formats personnalisés :-(((

Si le format Microsoft Excel est La fonction CELLULE renvoie
Général "S"
0 "F0"
# ##0 "P0"
0.00 "F2"
# ##0,00 "P2"
# ##0 F;-# ##0 F "C0"
# ##0 F;[Rouge]-# ##0 F "M0-"
# ##0,00 F;# ##0,00 F "M2"
# ##0,00 F;[Rouge]-# ##0,00 F "M2-"
0% "%0"
0.00% "%2"
0,00E+00 "S2"
#" "?/? ou #" "??/?? "S"
m/j/aa, m/j/aa h:mm ou mm/jj/aa "D4"
j-mmm-aa ou jj-mmm-aa "D1"
j-mmm ou jj-mmm "D2"
mmm-aa "D3"
mm/jj "D5"
h:mm AM/PM "H2"
h:mm:ss AM/PM "H1"
h:mm "H4"
h:mm:ss "H3"



Merci, c'est de cette manière que j'arrive à déterminer le nombre de
digit après la virgule (voir mon premier message)
Il me manque toujours l'info pour avant la virgule :(


Avatar
AV
| Il me manque toujours l'info pour avant la virgule :(

Fonctions persos à tester :

Function Compt0Avant(Cellule As Range)
Application.Volatile
x = Cellule.NumberFormat
For i = 1 To Len(x)
If Mid(x, i, 1) = "." Then Exit For
If Mid(x, i, 1) = "0" Then nb = nb + 1
Next
Compt0Avant = nb
End Function

Function Compt0Après(Cellule As Range)
Application.Volatile
x = Cellule.NumberFormat
y = Mid(x, Application.Find(".", x) + 1, 9 ^ 9)
For i = 1 To Len(y)
If Mid(y, i, 1) = "0" Then nb = nb + 1
Next
Compt0Après = nb
End Function


AV
Avatar
Modeste
Bonsour® Pyngu avec ferveur ;o))) vous nous disiez :

Merci, c'est de cette manière que j'arrive à déterminer le nombre de
digit après la virgule (voir mon premier message)
Il me manque toujours l'info pour avant la virgule :(



l'affichage des valeurs numériques est limité à 15 chiffres significatifs,
en fonction de la décimale imposée ou non ...
excel affiche ce qu'il peut "de significatif" !!!
;o)))

une autre approche avec fonction perso :

Function pyngu(target)
Application.Volatile
pyngu = target.NumberFormat
End Function



--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Pyngu
| Il me manque toujours l'info pour avant la virgule :(

Fonctions persos à tester :

Function Compt0Avant(Cellule As Range)
Application.Volatile
x = Cellule.NumberFormat
For i = 1 To Len(x)
If Mid(x, i, 1) = "." Then Exit For
If Mid(x, i, 1) = "0" Then nb = nb + 1
Next
Compt0Avant = nb
End Function

Function Compt0Après(Cellule As Range)
Application.Volatile
x = Cellule.NumberFormat
y = Mid(x, Application.Find(".", x) + 1, 9 ^ 9)
For i = 1 To Len(y)
If Mid(y, i, 1) = "0" Then nb = nb + 1
Next
Compt0Après = nb
End Function


AV


Merci, c'est vraiment ce que j'avais besoin, il ne me reste plus qu'a

afficher les résultats dans des cellules.
J'ai juste dû changer cellule.numberformat par activecell.numberformat.

Avatar
AV
| J'ai juste dû changer cellule.numberformat par activecell.numberformat.

Ca me parait une très mauvaise idée...
Mais c'est comme tu veux !

AV