limites VBA_excel_2007?? ( Erreur 7_Mémoire Insuffisante)

limites VBA_excel_2007?? ( Erreur 7_Mémoire Insuffisante) - VB/VBA/VBS - Programmation

Marsh Posté le 02-09-2010 à 09:03:03    

Bonjour à tous,
je travaille en ce moment sur un fichier excel qui me pose de sérieuses difficultés. Le problemes est le suivant: J'ai un fichier excel (324 MB) de 10 feuilles et d'environ 180 milles lignes *  colonnes chacune environ.
Il s'agit en quelques sorte nom, prenom, age, sexe, proba etc et different montants que j'ai calculé en utilisant des macros VBA sur chaque ligne et je compte faire des simulations pour additionner les charges en cas de sinistres.
Alors, je voudrais faire 200 000 simulations sur la charges totales en utilisant le generateur de nombre aléartoire de VBA comme probabilité d'invalidité; le code est le suivant:
 
Sub Invalidite_Coll_simul()
Dim ws As Worksheet
Dim rn As Range
Dim dResultat() As Double
Dim dInput As Variant
Dim i As Long
Dim s As Double
Dim t As Double
Dim u As Double
Dim x As Double
Dim k As Long
 
  ReDim dResultat(1 To 200000, 1 To 3)
   
  Set ws = ActiveWorkbook.Worksheets("Invalidite_Coll" )
  Set rn = ws.Range(ws.Cells(2, 31), ws.Cells(166128, 39))
  dInput = rn.Value
 
  For k = 1 To 200000
    s = 0
    t = 0
    u = 0
    For i = 1 To 166128
 
      If i = 1 Then
        x = Rnd()
      ElseIf Not (dInput(i, 3) = dInput(i - 1, 3)) Then
        x = Rnd()
      End If
 
      If x < dInput(i, 2) And dInput(i, 1) < 4500000 Then
        s = s + dInput(i, 1)
        t = t + dInput(i, 8)
        u = u + dInput(i, 9)
      End If
    Next
 
    dResultat(k, 1) = s
    dResultat(k, 2) = t
    dResultat(k, 3) = u
     
  Next
 
  Set rn = Feuil3.Range(Feuil3.Cells(3, 17), Feuil3.Cells(200002, 19))
  rn.Value = dResultat
 
End Sub
 
et donc, j'espère obtenir les une matrice a 200000 * 3 sur la feuille 3.
 
Mes problèmes sont les suivants:
Quand je veux tourner le code, j'ai un message d'erreur:
<< Erreur d'exécution '7' Mémoire insuffisante >>
Alors, je me suis dit que c'est surement du au fait que mon fichier est trop lourd et je pensais le décharger un peu.
Quand j'essaie de copier une feuille (ou meme une plage de données) vers un autre fichier excel, l'ordinateur se plante et me dit que j'ai sélectionné trop de données; même quand je sélectionne seulement  2 cellules.
Meme quand je sélectionne le collage spéciale, une fenêtre apparait et me propose de coller avec ou sans Liaison...
Anyway, je comprends plus trop comment manager.  
COMMENT FAIRE FACE A CES PB INCESSANTS?
QUELQU'UN AURAIT IL UNE AUTRE METHODE A ME PROPOSER???
Merci d'avance pour l'intérêt que vous portez a mon sujet....

Reply

Marsh Posté le 02-09-2010 à 09:03:03   

Reply

Marsh Posté le 03-09-2010 à 17:02:07    

Salut,
 
Passer tout ça sous base de données.
 
ou
 
Faire x copies du fichier sous l'explorateur Windows, et dans chaque fichier, détruire une plage de données. (Avoir 50 fichiers "normaux" au lieu d'un seul fichier énorme).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed