Dans Excel 2003, je dois diviser 2470170000467279 par 7. Sauf que lorsque
j'inscris la première valeur le chiffre 9 de la fin se transforme
automatiquement en 0...! Avez-vous une idée du pourquoi de la chose? Et ce
peu importe le format de cellule qui est utilisé?
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.C
Bonjour. La précision de calcul est de 15 chiffres maximum. Regarde la rubrique "limites" dans l'aide Excel. Cordialement. Daniel "machantal" a écrit dans le message de news:
Bonjour,
Dans Excel 2003, je dois diviser 2470170000467279 par 7. Sauf que lorsque j'inscris la première valeur le chiffre 9 de la fin se transforme automatiquement en 0...! Avez-vous une idée du pourquoi de la chose? Et ce peu importe le format de cellule qui est utilisé?
Je vous remercie grandement :-))
Bonjour.
La précision de calcul est de 15 chiffres maximum. Regarde la rubrique
"limites" dans l'aide Excel.
Cordialement.
Daniel
"machantal" <machantal@discussions.microsoft.com> a écrit dans le message de
news: 70654431-2AA8-4644-8168-B976235DD6F7@microsoft.com...
Bonjour,
Dans Excel 2003, je dois diviser 2470170000467279 par 7. Sauf que lorsque
j'inscris la première valeur le chiffre 9 de la fin se transforme
automatiquement en 0...! Avez-vous une idée du pourquoi de la chose? Et ce
peu importe le format de cellule qui est utilisé?
Bonjour. La précision de calcul est de 15 chiffres maximum. Regarde la rubrique "limites" dans l'aide Excel. Cordialement. Daniel "machantal" a écrit dans le message de news:
Bonjour,
Dans Excel 2003, je dois diviser 2470170000467279 par 7. Sauf que lorsque j'inscris la première valeur le chiffre 9 de la fin se transforme automatiquement en 0...! Avez-vous une idée du pourquoi de la chose? Et ce peu importe le format de cellule qui est utilisé?
Je vous remercie grandement :-))
PMO
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.
Cordialement.
PMO Patrick Morange
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme
votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
******************
Function DIVISEgdNombre _
(Tres_grand_nombre As String, Diviseur As Double) As String
Dim A$
Dim var
A$ = Tres_grand_nombre
If Left(A$, 1) <> "µ" Then
MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _
vbCrLf & "Exemple : 2470170000467279 devient" & _
vbCrLf & " µ2470170000467279", _
Title:="Traitez le nombre comme du texte en mettant µ devant"
Exit Function
End If
A$ = Mid(Tres_grand_nombre, 2)
var = CDec(A$)
var = var / Diviseur
DIVISEgdNombre = "µ" & CStr(var)
End Function
******************
2) dans la cellule A1 (par exemple) tapez
µ2470170000467279
Faites bien attention de faire précéder le nombre d'un "µ"
Le nombre va être traité comme du texte
3) en B1 tapez votre diviseur 7
4) en C1 tapez la formule
=DIVISEgdNombre(A1;B1)
le résultat doit être
µ352881428638182.71428571428571
RESTRICTION
Tout est traitée comme du texte, aussi bien le nombre
lui-même que le résultat obtenu. On ne peut pas les
faire intervenir dans les fonctions numériques classiques.
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.
Cordialement.
PMO Patrick Morange
Nicolas B.
Bonjour,
Faut quand même pas les nombres soient trop grand avec ta fonction :-)
Pour des entiers, on peut poser la division "à la main" :
Function Division(a As String, b As Long)
Dim r As Integer, q As String
While Len(a) > 0 r = 10 * r + Left(a, 1) a = Mid(a, 2, Len(a)) q = q & Int(r / b) r = r Mod b Wend
MsgBox q & " ; " & r
End Function
Sub Test() Division "2470170000467279", 7 End Sub
La fonction revoie le quotient et le reste.
Apparemment limité à des nombres à diviser de quelques 2 milliards de chiffres d'après l'aide sur le type String. (J'ai pas vérifié que ça marchait jusque là...)
Nicolas
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.
Cordialement.
PMO Patrick Morange
Bonjour,
Faut quand même pas les nombres soient trop grand avec ta fonction :-)
Pour des entiers, on peut poser la division "à la main" :
Function Division(a As String, b As Long)
Dim r As Integer, q As String
While Len(a) > 0
r = 10 * r + Left(a, 1)
a = Mid(a, 2, Len(a))
q = q & Int(r / b)
r = r Mod b
Wend
MsgBox q & " ; " & r
End Function
Sub Test()
Division "2470170000467279", 7
End Sub
La fonction revoie le quotient et le reste.
Apparemment limité à des nombres à diviser de quelques 2 milliards de
chiffres d'après l'aide sur le type String. (J'ai pas vérifié que ça
marchait jusque là...)
Nicolas
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme
votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
******************
Function DIVISEgdNombre _
(Tres_grand_nombre As String, Diviseur As Double) As String
Dim A$
Dim var
A$ = Tres_grand_nombre
If Left(A$, 1) <> "µ" Then
MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _
vbCrLf & "Exemple : 2470170000467279 devient" & _
vbCrLf & " µ2470170000467279", _
Title:="Traitez le nombre comme du texte en mettant µ devant"
Exit Function
End If
A$ = Mid(Tres_grand_nombre, 2)
var = CDec(A$)
var = var / Diviseur
DIVISEgdNombre = "µ" & CStr(var)
End Function
******************
2) dans la cellule A1 (par exemple) tapez
µ2470170000467279
Faites bien attention de faire précéder le nombre d'un "µ"
Le nombre va être traité comme du texte
3) en B1 tapez votre diviseur 7
4) en C1 tapez la formule
=DIVISEgdNombre(A1;B1)
le résultat doit être
µ352881428638182.71428571428571
RESTRICTION
Tout est traitée comme du texte, aussi bien le nombre
lui-même que le résultat obtenu. On ne peut pas les
faire intervenir dans les fonctions numériques classiques.
Faut quand même pas les nombres soient trop grand avec ta fonction :-)
Pour des entiers, on peut poser la division "à la main" :
Function Division(a As String, b As Long)
Dim r As Integer, q As String
While Len(a) > 0 r = 10 * r + Left(a, 1) a = Mid(a, 2, Len(a)) q = q & Int(r / b) r = r Mod b Wend
MsgBox q & " ; " & r
End Function
Sub Test() Division "2470170000467279", 7 End Sub
La fonction revoie le quotient et le reste.
Apparemment limité à des nombres à diviser de quelques 2 milliards de chiffres d'après l'aide sur le type String. (J'ai pas vérifié que ça marchait jusque là...)
Nicolas
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.
Cordialement.
PMO Patrick Morange
Péhemme
Bonsoir à tous,
La réponse de notre ami Patrick m'a intéressé. Bien que cela ne serve certainement à rien, j'ai monté la petite machine à calculer les grands nombres que vous trouverez chez :
La mise en forme des nombres est "bourrin", mais je n'ai pas su faire autrement. Merci de vos avis et conseils éclairés. Michel
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de news:
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.
Cordialement.
PMO Patrick Morange
Bonsoir à tous,
La réponse de notre ami Patrick m'a intéressé.
Bien que cela ne serve certainement à rien, j'ai monté la petite machine à
calculer les grands nombres que vous trouverez chez :
La mise en forme des nombres est "bourrin", mais je n'ai pas su faire
autrement.
Merci de vos avis et conseils éclairés.
Michel
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de
news:CD646ADE-8B67-4D1F-9187-87B2679E9C2C@microsoft.com...
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme
votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
******************
Function DIVISEgdNombre _
(Tres_grand_nombre As String, Diviseur As Double) As String
Dim A$
Dim var
A$ = Tres_grand_nombre
If Left(A$, 1) <> "µ" Then
MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _
vbCrLf & "Exemple : 2470170000467279 devient" & _
vbCrLf & " µ2470170000467279", _
Title:="Traitez le nombre comme du texte en mettant µ devant"
Exit Function
End If
A$ = Mid(Tres_grand_nombre, 2)
var = CDec(A$)
var = var / Diviseur
DIVISEgdNombre = "µ" & CStr(var)
End Function
******************
2) dans la cellule A1 (par exemple) tapez
µ2470170000467279
Faites bien attention de faire précéder le nombre d'un "µ"
Le nombre va être traité comme du texte
3) en B1 tapez votre diviseur 7
4) en C1 tapez la formule
=DIVISEgdNombre(A1;B1)
le résultat doit être
µ352881428638182.71428571428571
RESTRICTION
Tout est traitée comme du texte, aussi bien le nombre
lui-même que le résultat obtenu. On ne peut pas les
faire intervenir dans les fonctions numériques classiques.
La réponse de notre ami Patrick m'a intéressé. Bien que cela ne serve certainement à rien, j'ai monté la petite machine à calculer les grands nombres que vous trouverez chez :
La mise en forme des nombres est "bourrin", mais je n'ai pas su faire autrement. Merci de vos avis et conseils éclairés. Michel
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> a écrit dans le message de news:
Bonjour,
Il s'agit d'un dépassement de capacité et Excel transforme votre nombre pour pouvoir le traiter comme il peut.
Voici une piste pour contourner ce problème :
1) copiez le code ci-dessous dans un module standard
****************** Function DIVISEgdNombre _ (Tres_grand_nombre As String, Diviseur As Double) As String Dim A$ Dim var A$ = Tres_grand_nombre If Left(A$, 1) <> "µ" Then MsgBox prompt:="Veuillez mettre un µ devant le nombre" & _ vbCrLf & "Exemple : 2470170000467279 devient" & _ vbCrLf & " µ2470170000467279", _ Title:="Traitez le nombre comme du texte en mettant µ devant" Exit Function End If A$ = Mid(Tres_grand_nombre, 2) var = CDec(A$) var = var / Diviseur DIVISEgdNombre = "µ" & CStr(var) End Function ******************
2) dans la cellule A1 (par exemple) tapez µ2470170000467279 Faites bien attention de faire précéder le nombre d'un "µ" Le nombre va être traité comme du texte 3) en B1 tapez votre diviseur 7 4) en C1 tapez la formule =DIVISEgdNombre(A1;B1) le résultat doit être µ352881428638182.71428571428571
RESTRICTION Tout est traitée comme du texte, aussi bien le nombre lui-même que le résultat obtenu. On ne peut pas les faire intervenir dans les fonctions numériques classiques.