Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Ma fille me demande de lui résoudre le problème suivant :
Sur sa feuille il y a 3 colonnes :
- 1ère colonne : on rentre des chiffres
- 2ème colonne (superflue...) : il y a "+/-"
- 3ème colonne : on rentre des chiffres

Dans une 4ème colonne elle voudrait : chiffre 1ère colonne & "+/-" & chiffre 3ème colonne
Mais les chiffres ne doivent avoir que 4 décimales après la virgule.

J'avais, sur un fil précédent, posé une question similaire. job75 m'avait concocté une fonction de son cru qui marche parfaitement pour régler le nombre de décimales après la virgule (et s'il y a moins de -dans le cas présent- 4 décimales, alors les suivantes, jusqu'à concurrence de 4, deviennent "0").
En papa frimeur, je me suis dit "t'en fais pas ma poulette, papa va te résoudre (grâce à job) le problème en un tournemain". Et là, ¡caramba! il y a un problème. Quand le nombre de décimales après la virgule du chiffre entré est supérieur à 15 (d'accord, c'est beaucoup, mais enfin...), ça beugue. Et je ne comprends pas pourquoi.

Merci d'avance pour me l'expliquer
 

Pièces jointes

  • masmenos2.xlsm
    23.4 KB · Affichages: 43

job75

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonjour Magic_Doctor, Modeste geedee,

La fonction Zeros FinDeChaine traite des textes.

Il n'y a plus de problème si l'on entre en I8 :

Code:
=ZerosFinDeChaine(""&C8;4)&" +/- "&ZerosFinDeChaine(""&E8;4)
A+
 

Modeste geedee

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonsour® heu... job75
:confused: peut-etre n'ai-je point compris ?
cela dépendrait donc du séparateur décimal ??
Capture2.jpg
Capture.jpg
Capture3.jpg
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    35.5 KB · Affichages: 78
  • Capture.jpg
    Capture.jpg
    35.5 KB · Affichages: 77
  • Capture2.jpg
    Capture2.jpg
    37.5 KB · Affichages: 77
  • Capture2.jpg
    Capture2.jpg
    37.5 KB · Affichages: 72
  • Capture3.jpg
    Capture3.jpg
    37.7 KB · Affichages: 76
  • Capture3.jpg
    Capture3.jpg
    37.7 KB · Affichages: 78

Magic_Doctor

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonsoir job,

Effectivement, le problème se corrige. J'avoue ne pas comprendre pourquoi. Dommage qu'il faille rajouter ce ""&.

@+
 

Pièces jointes

  • masmenos3.xlsm
    24.2 KB · Affichages: 35

job75

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonjour Magic_Doctor, le forum,

Voilà ce que moi je comprends.

En E8 on a le nombre 0,0522915225780877

Il y a 15 chiffres significatifs (le maximum possible), mais un zéro les sépare du séparateur décimal.

Alors, sans doute pour ne pas perdre d'information dans les calculs, Excel convertit le nombre au format scientifique.

Avec ""& le nombre est d'abord convertit en texte et la conversion au format scientifique n'a pas lieu.

Cette histoire de conversion est ma foi intéressante, comme toi je découvre.

A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonjour job,

Effectivement c'est curieux.
J'ai tâché d'éviter d'avoir à écrire dans la formule (barre de formule) ""&C8 en tentant de modifier ta fonction. Ça n'a pas marché...

J'ai demandé à ma fille ce qu'elle pouvait bien faire avec des chiffres aussi impressionnants. En fait, c'est une de ses amies uruguayenne biologiste, qui fait un stage en Zunie, qui lui a demandé si elle pouvait lui résoudre le problème. Et là on s'émerveille de la technologie actuelle :
la copine de ma fille (Zunie) --> ma fille (France) --> papa (Uruguay) --> job (France) --> papa (Uruguay) --> ma fille (France) --> la copine de ma fille (Zunie)
 

Modeste geedee

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonsour®
comme le faisait remarquer JOB75
Excel utilise un format interne pour stocker les valeurs constitué d'une mantisse (15 chiffres significatifs et d'un exposant)
Ce lien n'existe plus

l'utilisation d'une proc VBA devrait permettre de contourner le souci crée par l'interpretation automatique("by design") des valeurs et formules saisis en feuille de calcul...
en effet aprés un nombre important >4(valeur d'affichage souhaitée) de zéro aprés la décimale nos "formules" sont prises en défaut...


Heu ???
c'est ou la Zunie ... ??
un état créé par Monsanto ou l'inverse :(
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Rebonjour,

Tout d'abord je réponds à Modeste geedee qui, au fond, n'est pas tombé bien loin.
Depuis voilà déjà pas mal de temps, en espagnol, les habitants des États-Unis s'appellent los estadounidenses.
Depuis peu, en français, est apparu, essentiellement dans la presse écrite, le terme étasuniens. C'est moins joli qu'en espagnol...
Récemment, je lis un article en français concernant un nombre important d'Israéliens qui font une demande de passeport "zunien" pour partir en "Zunie" au cas où... Comme Modeste geedee je me suis demandé "mais c'est où ce bled ?". Et puis ça a fait tilt.
Ce n'est ni plus ni moins qu'un néologisme, que je trouve amusant et qui risque fort de faire carrière. À moins, bien sûr, que des censeurs le jugent politiquement incorrect...
Donc la Zunie et les Zuniens !

Mais revenons à des choses davantage exceliennes.
Les chiffres posent un problème au-delà de 15 décimales après la virgule. Mais qu'est-ce que ça veut dire plus de 15 décimales après la virgule ? En quoi un biologiste a-t-il besoin d'une telle précision quasi quantique ? Que cela ne tienne, j'ai tout simplement tronqué les chiffres afin que le nombre de décimales après la virgule ne dépasse pas 15.
J'ai fait un panachage d'une idée personnelle avec la fonction de job.
Dans la fonction on ne met plus qu'un seul argument et c'est tout (la copine de ma fille ne m'ayant pas l'air très calée avec Excel, autant faire le plus simple possible). Par défaut les chiffres renvoyés n'auront que 4 chiffres après la virgule (facile de modifier dans le corps de la fonction) et les colonnes où on été entrés les chiffres doivent être contiguës (facile là aussi de modifier dans le corps de la fonction).
VB:
Function NadiaForEver(cel1 As Variant) As String
'job75 / Magic_Doctor
Dim x As Byte
Dim cel2 As Variant, txt1 As String, txt2 As String
Dim mestxt As Variant, dico As Object, temp As Variant
Dim i As Byte, j As Byte, t As String, n As String
x = 4 'nombre de décimales après la virgule
cel2 = cel1.Offset(, 1) 'cel1 et cel2 sont contenus dans des colonnes contiguës
cel1 = FormatNumber(cel1, 15): cel2 = FormatNumber(cel2, 15) 'pas plus de 15 chiffres après la virgule
txt1 = CStr(cel1): txt2 = CStr(cel2)
mestxt = Array(txt1, txt2)
Set dico = CreateObject("Scripting.Dictionary")

If cel1 = "" Or cel2 = "" Then Exit Function
For i = 1 To 2
    For j = 1 To Len(mestxt(i - 1))
        t = Mid(mestxt(i - 1), j, 1)
        If Not IsNumeric(t) And t <> "," And t <> "." Then Exit For
    Next
    t = Replace(Left(mestxt(i - 1), j - 1), ",", ".")
    n = IIf(j = 1, "", Format(Val(t), "0." & String(x, "0")))
    dico(n & Mid(mestxt(i - 1), j)) = ""
Next
temp = dico.keys
NadiaForEver = temp(0) & " +/- " & temp(1)
End Function
PS : Nadia c'est le prénom de la copine de ma fille. Je suis sûr que ça va l'ennerver !
 

Pièces jointes

  • masmenos4.xlsm
    27.6 KB · Affichages: 30

job75

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Re,

J'avais créé la fonction ZerosFinDeChaine pour formater un nombre suivi d'un texte.

Elle n'est ni bien adaptée ni nécessaire pour traiter comme ici uniquement un nombre.

Il existe en effet la fonction CTXT.

Quels que soient les nombres en C8 et E8 la formule :

Code:
=CTXT(C8;8)&" +/- "&CTXT(E8;8)
renverra toujours les nombres avec 8 décimales.

Edit : pardon, en espagnol c'est la fonction DECIMAL :

Code:
=DECIMAL(C8;8)&" +/- "&DECIMAL(E8;8)
A+
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

Bonsoir job,

Effectivement on pouvait faire plus simple sans pour autant régler toutes les possibilités en un tournemain comme peut le faire une fonction (UDF).
J'ai tâché de passer en revue toutes les possibilités, mais peut-être en ai-je oublié.
Quoi qu'il en soit, on traite certes des chiffres au départ, mais le résultat est une chaîne.
Et en plus, ça m'amusait de faire un truc avec cet étonnant dictionnaire que je suis loin encore de maîtriser...

Buenas noches.
 

Pièces jointes

  • masmenos5.xlsm
    30 KB · Affichages: 35

Magic_Doctor

XLDnaute Barbatruc
Re : Chaîne de caractères avec des chiffres qui ont 4 décimales après la virguile

More fun on the forum!

Tout à fait inutile mais ô combien addictif pour les stakhanovistes des chiffres qui veulent sortir de la grisaille !

PS : j'ai oublié de signaler que pour dresser une nouvelle liste de nombres aléatoires il suffit juste de cliquer sur le titre de la colonne correspondante.
 

Pièces jointes

  • masmenos7.xlsm
    104.3 KB · Affichages: 29
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 199
Membres
102 816
dernier inscrit
bolivier