Bonjour,
Avec excel 2010 j'obtiens, pour le calcul de
=(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1)
le résultat faux suivant : 6186171974825300
au lieu du résultat juste 6186171974825304. La différence est de 4.
Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales.
Comment faire pour obtenir un calcul juste?
Cordialement.
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
Merci Isabelle et Jacquouille,
Je viens de seulement lire vos messages car j'étais absent semaine 18. Je suis maintenant capable d'écrire ces macros efficaces et je conserve la dernière.
******************** Voici ce que j'ai écrit pour cette première macro. J'obtiens le bon résultat dans box puis, en cliquant ok sur la box, le bon résultat s'affiche ensuite en A1
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat MsgBox resultat [a1] = resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub ********************************** mais si je supprime la ligne MsgBox resultat la deuxième macro devient:
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat
[a1] = resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub
et le bon résultat s'affiche en A1 ********************************************** en final cette troisième et dernière macro marche aussi très bien (je l'enregistre) et affiche le bon résultat en A1:
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub ******************* Ces tois dernières lignes sont un peu du chinois pour moi resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("e;A1"e;) = "e;'"e; & resultat Est il possible de trouver une explication de ces écritures ?
Je suis heureux de pouvoir faire des calculs exacts sur des nombres au delà de 15 chiffres, avec excel 2010, avec cette macro efficace. Grand merci.
Le jeudi 09 Avril 2015 à 09:52 par jobill :
Bonjour,
Avec excel 2010 j'obtiens, pour le calcul de
=(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1)
le résultat faux suivant : 6186171974825300
au lieu du résultat juste 6186171974825304. La différence est
de 4.
Le format de la cellule est nombre avec 0 décimale, le calcul est
identique avec 1 ou plusieurs décimales.
Comment faire pour obtenir un calcul juste?
Cordialement.
Merci Isabelle et Jacquouille,
Je viens de seulement lire vos messages car j'étais absent semaine 18. Je suis maintenant capable d'écrire ces macros efficaces et je conserve la dernière.
********************
Voici ce que j'ai écrit pour cette première macro.
J'obtiens le bon résultat dans box puis, en cliquant ok sur la box, le bon résultat s'affiche ensuite en A1
Sub testDIV()
Dim Nombre As String, Diviseur As String, resultat As String
Nombre = "e;385214215596142443743232"e;
Diviseur = "e;62270208"e;
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
MsgBox resultat
[a1] = resultat
Range("e;A1"e;) = "e;'"e; & resultat
End Sub
**********************************
mais si je supprime la ligne MsgBox resultat
la deuxième macro devient:
Sub testDIV()
Dim Nombre As String, Diviseur As String, resultat As String
Nombre = "e;385214215596142443743232"e;
Diviseur = "e;62270208"e;
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
[a1] = resultat
Range("e;A1"e;) = "e;'"e; & resultat
End Sub
et le bon résultat s'affiche en A1
**********************************************
en final cette troisième et dernière macro marche aussi très bien (je l'enregistre) et affiche le bon résultat en A1:
Sub testDIV()
Dim Nombre As String, Diviseur As String, resultat As String
Nombre = "e;385214215596142443743232"e;
Diviseur = "e;62270208"e;
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
Range("e;A1"e;) = "e;'"e; & resultat
End Sub
*******************
Ces tois dernières lignes sont un peu du chinois pour moi
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
Range("e;A1"e;) = "e;'"e; & resultat
Est il possible de trouver une explication de ces écritures ?
Je suis heureux de pouvoir faire des calculs exacts sur des nombres au delà de 15 chiffres, avec excel 2010, avec cette macro efficace. Grand merci.
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
Merci Isabelle et Jacquouille,
Je viens de seulement lire vos messages car j'étais absent semaine 18. Je suis maintenant capable d'écrire ces macros efficaces et je conserve la dernière.
******************** Voici ce que j'ai écrit pour cette première macro. J'obtiens le bon résultat dans box puis, en cliquant ok sur la box, le bon résultat s'affiche ensuite en A1
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat MsgBox resultat [a1] = resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub ********************************** mais si je supprime la ligne MsgBox resultat la deuxième macro devient:
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat
[a1] = resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub
et le bon résultat s'affiche en A1 ********************************************** en final cette troisième et dernière macro marche aussi très bien (je l'enregistre) et affiche le bon résultat en A1:
Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "e;385214215596142443743232"e; Diviseur = "e;62270208"e; resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("e;A1"e;) = "e;'"e; & resultat End Sub ******************* Ces tois dernières lignes sont un peu du chinois pour moi resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("e;A1"e;) = "e;'"e; & resultat Est il possible de trouver une explication de ces écritures ?
Je suis heureux de pouvoir faire des calculs exacts sur des nombres au delà de 15 chiffres, avec excel 2010, avec cette macro efficace. Grand merci.
jobill
Le jeudi 09 Avril 2015 à 09:52 par jobill :
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
il faut lire Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "385214215596142443743232" Diviseur = "62270208" resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("A1") = "'" & resultat End Sub
Le jeudi 09 Avril 2015 à 09:52 par jobill :
Bonjour,
Avec excel 2010 j'obtiens, pour le calcul de
=(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1)
le résultat faux suivant : 6186171974825300
au lieu du résultat juste 6186171974825304. La différence est
de 4.
Le format de la cellule est nombre avec 0 décimale, le calcul est
identique avec 1 ou plusieurs décimales.
Comment faire pour obtenir un calcul juste?
Cordialement.
il faut lire
Sub testDIV()
Dim Nombre As String, Diviseur As String, resultat As String
Nombre = "385214215596142443743232"
Diviseur = "62270208"
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
Range("A1") = "'" & resultat
End Sub
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
il faut lire Sub testDIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "385214215596142443743232" Diviseur = "62270208" resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("A1") = "'" & resultat End Sub
jobill
Le jeudi 09 Avril 2015 à 09:52 par jobill :
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
Bizarre après le signe " un signe parasite s'ajoute e,
bref je crée une nouvelle macro :
Sub test2DIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "2293215102242267478449061888000" Diviseur = "121645100408832000 " resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("A1") = "'" & resultat End Sub
mais le résultat qui devrait être 18851684897584 n'est pas atteint...
Erreur d'exécution '6': Dépassement de capacité
Y a t-il une solution pour surmonter ce blocage ?
Le jeudi 09 Avril 2015 à 09:52 par jobill :
Bonjour,
Avec excel 2010 j'obtiens, pour le calcul de
=(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1)
le résultat faux suivant : 6186171974825300
au lieu du résultat juste 6186171974825304. La différence est
de 4.
Le format de la cellule est nombre avec 0 décimale, le calcul est
identique avec 1 ou plusieurs décimales.
Comment faire pour obtenir un calcul juste?
Cordialement.
Bizarre après le signe " un signe parasite s'ajoute e,
bref je crée une nouvelle macro :
Sub test2DIV()
Dim Nombre As String, Diviseur As String, resultat As String
Nombre = "2293215102242267478449061888000"
Diviseur = "121645100408832000 "
resultat = CDec(Nombre) / Diviseur
Debug.Print resultat
Range("A1") = "'" & resultat
End Sub
mais le résultat qui devrait être 18851684897584 n'est pas atteint...
Bonjour, Avec excel 2010 j'obtiens, pour le calcul de =(99*98*97*96*95*94*93*92*91*90*89*88*87)/(13*12*11*10*9*8*7*6*5*4*3*2*1) le résultat faux suivant : 6186171974825300 au lieu du résultat juste 6186171974825304. La différence est de 4. Le format de la cellule est nombre avec 0 décimale, le calcul est identique avec 1 ou plusieurs décimales. Comment faire pour obtenir un calcul juste? Cordialement.
Bizarre après le signe " un signe parasite s'ajoute e,
bref je crée une nouvelle macro :
Sub test2DIV() Dim Nombre As String, Diviseur As String, resultat As String Nombre = "2293215102242267478449061888000" Diviseur = "121645100408832000 " resultat = CDec(Nombre) / Diviseur Debug.Print resultat Range("A1") = "'" & resultat End Sub
mais le résultat qui devrait être 18851684897584 n'est pas atteint...