Re : Calcul avec des grands nombres sous excel

Publié par eric45 le 24/05/2016 10:51:12
Bonjour à tous
Bonjour chrysaxel

Nous sommes tous des bénévoles et, si je peux me permettre, le "votre prompt réaction" ne pousse pas forcément à répondre "promptement" à la demande.

Pour ton pb, je te propose ceci :
Option Explicit

Sub lance_test
()
Dim multiplicande As Long         ' multiplicande'
Dim len_nb_1 As Integer
Dim multiplicateur 
As Long         ' multiplicateur'
Dim len_nb_2 As Integer
Dim 
Var As Integer
Dim tablo
() As Integer
Dim i 
As IntegerAs Integer
Dim a 
As IntegerAs IntegerAs IntegerAs IntegerAs Integer
Dim x 
As IntegerAs IntegerAs Integer
Dim resultat 
As String
Dim mav_01 
As Integerreste As Integer

multiplicande 
111111111
multiplicateur 
111111111

len_nb_1 
Len(CStr(multiplicande))
len_nb_2 Len(CStr(multiplicateur))

ReDim tablo(len_nb_1 len_nb_2 1len_nb_1 len_nb_2 1)

For 
1 To len_nb_2
    
Var = 0
    a 
0
    e 
len_nb_1 1
    
For 1 To len_nb_1 1
        
        
If len_nb_1 1 Then
            c 
1
            b 
len_nb_1 a
            a 
1
            tablo
(d1) = Right(Right((Mid(multiplicandeb1) * Mid(multiplicateure1)), 1) + Var, 1)
            If 
Len((Mid(multiplicandeb1) * Mid(multiplicateure1)) + Var) > 1 Then
                
Var = Left(((Mid(multiplicandeb1) * Mid(multiplicateure1)) + Var), 1)
            Else
                Var = 
0
            End 
If
        
End If
        
        If 
len_nb_1 And Var > 0 Then
            
' pour test'
            
Cells(21 i30 len_nb_1 d) = tablo(d1)
        Else
            
' pour test'
            
Cells(21 i30 len_nb_1 d) = tablo(d1)
            
tablo(d1) = Var
            
' pour test'
            
Cells(21 i30 len_nb_1 d) = Var
            If 
len_nb_1 Then Exit For
        
End If
        
    
Next j
    d 
1
Next i

For 0 To len_nb_1 len_nb_2 1
    
For 0 To len_nb_2 1
        mav_01 
mav_01 tablo(zx)
    
Next x
    mav_01 
mav_01 reste
    reste 
0
    
If Len(CStr(mav_01)) = 2 Then
        resultat 
Right(mav_011) & resultat
        reste 
Left(mav_011)
    Else
        
resultat mav_01 resultat
    End 
If
    
mav_01 0
Next z
For 1 To Len(resultat)
    If 
Left(resultat1) = 0 Then resultat Mid(resultat2) Else Exit For
Next y
' pour test'
MsgBox resultat
' pour test il faut que la cellule soit de format texte'
Range("A1") = CStr(resultat)
End Sub

C'est un peu capilotracté, mais cela fonctionne.
Macro QUE pour les entiers
Il y a certainement plus simple, mais c'est plus cher

A te lire
Eric

PS : fichier texte du code joint, il y a, à la prévisu, des caractères qui disparaissent

Joindre un fichier:


Lien visibles uniquement pour les utilisateurs enregistrés

Ce message est de : http://excel.veriti.net/modules/newbb/viewtopic.php?post_id=522