Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1282 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2020641
LePeS
Posté le 02-09-2010 à 09:03:03  profilanswer
 

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....

mood
Publicité
Posté le 02-09-2010 à 09:03:03  profilanswer
 

n°2021078
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 03-09-2010 à 17:02:07  profilanswer
 

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).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
VBA Excel 2003 Problèmes d'affichage et de disparitionLenteur Spreadsheet VBA Excel 2003
Supprimer un bloc avec VBASupprimer un bloc avec VBA
Random dans flash avec mémoire ?Démarrer avec VBA (Finance de marché)
[VBA] Forcer un Debug incohérentfaire une recherchev et sommer les colonnes sur un fichier excel avec
Plus de sujets relatifs à : limites VBA_excel_2007?? ( Erreur 7_Mémoire Insuffisante)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR