[RESOLU] : longue operation dans cellule excel

MADAGASCAR

XLDnaute Occasionnel
Bonsoir Excel Downloads
Bonsoir à tous et à toutes
SVP chers membres comment faire pour que que je puisse faire des longues operation dans une seule cellule d'excel ..
Merci beaucoup d'avance pour l'aide
Cordialement
MADA
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : longue operation dans cellule excel

Bonsoir

Il me semble qu'Excel ne prend en compte que 12 chiffres au max, donc 58969878695878 * 58968957896586 donne 3477446593406570000000000000 et pas la bonne valeur. Est-ce vraiment ce que tu veux ?

@ plus
 

MADAGASCAR

XLDnaute Occasionnel
Re : longue operation dans cellule excel

Bonsoir CISCO
Oui c'est bien ce que je veux .. je ne demande pas un poste de travail au NASA .. c'est juste une operation que je me demande a comprendre ..car vraiment et en realite et je vous jure que je ne sais pas faire cette " affaire" ..multiplier ou additioner ou ..... dans une seule cellule avec des longues chiffres .. s'il ya une methode eh bein vas y dites moi et mille fois merci si non pas probleme et aussi 10000 fois merci
Cordialemnt
MADA
 

CISCO

XLDnaute Barbatruc
Re : longue operation dans cellule excel

Bonsoir

Il suffit d'écrire = 58969878695878 * 58968957896586. Dès que tu écris dans une cellule le signe =, ou + ou -, Excel "comprend" qu'il faut faire le calcul qui suit.

@ plus
 

MADAGASCAR

XLDnaute Occasionnel
Re : longue operation dans cellule excel

Bonsoir
j'ai ecris en D7 (123456789123456789)
j'ai ecris en D8 (123456789123456789)
puis dans D5 j'ai ecris (D5 =D7*D8)
regardez bien svp qu'est ce qu'il m'a donné monsieur excel .. EISTEIN ne comprend pas ça ..comment vous voulez que moi le simple MADA comprendre qu'est ce qu'il veut dire ce excel avec ce resultat
MADA
 

Pièces jointes

  • multiplication.xlsx
    9.1 KB · Affichages: 23
  • multiplication.xlsx
    9.1 KB · Affichages: 26

job75

XLDnaute Barbatruc
Re : longue operation dans cellule excel

Bonsoir MADA, CISCO,

Moi je savais déjà faire ça à l'école primaire, mais Excel n'y a pas été :rolleyes:

Il faut lui apprendre l'algorithme des multiplications :

Code:
Function Multiplier$(x$, y$)
Dim a$(), i%, retenue, n%, j%, z, maxi%
ReDim a(1 To Len(y))
'---multiplications---
For i = UBound(a) To 1 Step -1
  retenue = 0
  n = n + 1
  For j = Len(x) To 1 Step -1
    z = Mid(x, j, 1) * Mid(y, i, 1) + retenue
    retenue = Int(z / 10)
    a(n) = IIf(j = 1 And retenue, retenue, "") & Right(z, 1) & a(n)
  Next j
  a(n) = a(n) & String(n - 1, "0") 'ajout de zéros à droite
  If Len(a(n)) > maxi Then maxi = Len(a(n))
Next i
retenue = 0
'---ajout de zéros à gauche pour avoir la même longueur---
For j = 1 To n
  a(j) = String(maxi - Len(a(j)), "0") & a(j)
Next
'---additions et résultat---
For i = maxi To 1 Step -1
  z = retenue
  For j = 1 To n
    z = z + Val(Mid(a(j), i, 1))
  Next j
  retenue = Int(z / 10)
  Multiplier = IIf(i = 1 And retenue, retenue, "") & Right(z, 1) & Multiplier
Next i
End Function
Fichier joint.

PS : je mets un Like au post #1 de MADA car je n'ai encore jamais vu ce problème sur XLD.

Bonne nuit.
 

Pièces jointes

  • Multiplication(1).xlsm
    23.1 KB · Affichages: 32
Dernière édition:

MADAGASCAR

XLDnaute Occasionnel
Re : longue operation dans cellule excel

Bonsoir maitre JOB75
Merci beaucoup pour votre aide
Merci beaucoup pour votre impeccable code
Merci pour vos excellents leçons VBA ..
Vous etes toujours notre sauveur ..mes fortements respects
Mes excuses pour une derniere question .. comment faire pour addition et soustraction ..c à dire les autre applications .. est ce qu'on utilise le meme code
Merci d'avanace pour l'aide
BONNE NUIT maitre
Cordialement
MADA
 

Pièces jointes

  • merci.jpg
    merci.jpg
    152.3 KB · Affichages: 14
  • merci.jpg
    merci.jpg
    152.3 KB · Affichages: 11

job75

XLDnaute Barbatruc
Re : longue operation dans cellule excel

Bonjour MADA, le forum,

Pour additionner 2 nombres entiers :

Code:
Function Additionner$(x$, y$)
Dim maxi%, i%, z As Byte, retenue As Byte
maxi = Application.Max(Len(x), Len(y))
'---ajout de zéros à gauche pour avoir la même longueur---
x = String(maxi - Len(x), "0") & x
y = String(maxi - Len(y), "0") & y
'---additions et résultat---
For i = maxi To 1 Step -1
  z = retenue + Val(Mid(x, i, 1)) + Val(Mid(y, i, 1))
  retenue = Int(z / 10)
  Additionner = IIf(i = 1 And retenue, retenue, "") & Right(z, 1) & Additionner
Next
End Function
Pour l'addition des éléments d'une matrice :

Code:
Function MAddition$(matrice)
Dim e
matrice = matrice
If Not IsArray(matrice) Then MAddition = matrice: Exit Function
For Each e In matrice
  MAddition = Additionner(CStr(e), MAddition)
Next
End Function
Fichier joint.

Bonne journée.
 

Pièces jointes

  • Addition(1).xlsm
    23.3 KB · Affichages: 28

MADAGASCAR

XLDnaute Occasionnel
Re : longue operation dans cellule excel

Bonjour maitre JOB75
BRAVO
Merci pour tous .. pour votre impeccable code .. votre bien suivi au sujet .. votre gentillesse
Mes fortements respects
Cordialement
MADA BLACK
 

Pièces jointes

  • couverture-merci.jpg
    couverture-merci.jpg
    11.3 KB · Affichages: 14
  • couverture-merci.jpg
    couverture-merci.jpg
    11.3 KB · Affichages: 16

job75

XLDnaute Barbatruc
Re : [RESOLU] : longue operation dans cellule excel

Re MADA,

Au post #8 vous parliez aussi de soustraction.

Cette fonction permet d'additionner 2 entiers relatifs (avec ou sans signe moins) :

Code:
Function AdditionAvecSigne$(x$, y$)
Dim negx As Boolean, negy As Boolean, neg As Boolean
Dim maxi%, t$, i%, z%, retenue As Byte
negx = Left(x, 1) = "-": negy = Left(y, 1) = "-"
x = Mid(x, 1 - negx): y = Mid(y, 1 - negy)
If negx And negy Then
  AdditionAvecSigne = "-" & Additionner(x, y)
ElseIf Not negx And Not negy Then
  AdditionAvecSigne = Additionner(x, y)
Else
   maxi = Application.Max(Len(x), Len(y))
  '---ajout de zéros à gauche pour avoir la même longueur---
  x = String(maxi - Len(x), "0") & x
  y = String(maxi - Len(y), "0") & y
  neg = negx And x > y Or negy And y > x 'signe final
  If x < y Then t = x: x = y: y = t 'classement
  '---soustractions et résultat---
  For i = maxi To 1 Step -1
    z = Mid(x, i, 1) - Mid(y, i, 1) - retenue
    If z < 0 Then z = z + 10: retenue = 1 Else retenue = 0
    AdditionAvecSigne = z & AdditionAvecSigne
  Next
  '---suppression des zéros non significatifs---
  For i = 1 To maxi - 1
    If Mid(AdditionAvecSigne, i, 1) <> 0 Then Exit For
  Next
  AdditionAvecSigne = Mid(AdditionAvecSigne, i)
  If neg Then AdditionAvecSigne = "-" & AdditionAvecSigne
End If
End Function
Et pour additionner les éléments d'une matrice :

Code:
Function MAdditionAvecSigne$(matrice)
Dim e
matrice = matrice
If Not IsArray(matrice) Then MAdditionAvecSigne = matrice: Exit Function
For Each e In matrice
  MAdditionAvecSigne = AdditionAvecSigne(CStr(e), MAdditionAvecSigne)
Next
End Function
Fichier joint.

Edit : ajouté la suppression des zéros non significatifs.

A+
 

Pièces jointes

  • Addition avec signe(1).xlsm
    26.1 KB · Affichages: 20
Dernière édition:

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU] : longue operation dans cellule excel

Bonsoir
Pas plus que deux mots :
BRAVO § FELICITATION
Merci 1000 fois maitre
JOB75
Cordialement
MADA
du fond du coeur.gif
 

Pièces jointes

  • du fond du coeur.gif
    du fond du coeur.gif
    57.7 KB · Affichages: 11

job75

XLDnaute Barbatruc
Re : [RESOLU] : longue operation dans cellule excel

Re,

Pour la multiplication des entiers relatifs il suffit d'utiliser les variables booléennes negx et negy.

Voyez ce fichier (2).

Bonne soirée.
 

Pièces jointes

  • Multiplication(2).xlsm
    24 KB · Affichages: 18

MADAGASCAR

XLDnaute Occasionnel
Re : [RESOLU] : longue operation dans cellule excel

Bonsoir
Bien reçu et compris maitre JOB75
Merci beaucoup pour vos propres leçons
Cordialement
MADA
 

Pièces jointes

  • Thank-you1.jpg
    Thank-you1.jpg
    269.6 KB · Affichages: 14
  • Thank-you1.jpg
    Thank-you1.jpg
    269.6 KB · Affichages: 14

job75

XLDnaute Barbatruc
Re : [RESOLU] : longue operation dans cellule excel

Bonjour MADA, le forum,

Pour vos archives j'ai fait le ménage en mettant tout dans le même fichier.

J'ai changé les noms des fonctions de l'addition et fait une ou deux modifications de détail.

A+
 

Pièces jointes

  • Addition et multiplication des entiers relatifs de grande longueur.xlsm
    26.3 KB · Affichages: 19
  • Addition et multiplication des entiers relatifs de grande longueur.xlsm
    26.3 KB · Affichages: 30

Discussions similaires

Réponses
16
Affichages
685
Réponses
17
Affichages
671

Statistiques des forums

Discussions
312 217
Messages
2 086 352
Membres
103 195
dernier inscrit
martel.jg