Problème de mémoire
Résolu
roupille008
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
roupille008 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
roupille008 Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voilà mon petit problème, j'ai écrit une macro qui plante pour cause de mémoire insuffisante (c'est ce que dit le message d'erreur).
Voici la macro
Le problème est dû à la taille du fichier, il y a dans celui que je teste 70 000 lignes. (et j'aimerais bien que ça marche pour 100 000 lignes environ.
Du coup j'me suis dit qu'une solution possible c'était de faire la même marco plusieurs fois à la suite:
-la première va de la 100 000 à 80 000 ligne
- la seconde de 80 000 à 60 000 ligne
etc
Mais ça à l'air de rien changer (peut-être qu'il faut que je fasse des intervalles encore plus petit mais j'aime pas voir mon code grossir de la sorte.)
Voilà, si quelqu'un a une idée je suis preneur.
Marci, bonne journée.
Alors voilà mon petit problème, j'ai écrit une macro qui plante pour cause de mémoire insuffisante (c'est ce que dit le message d'erreur).
Voici la macro
Dim ii As Long For ii = Application.WorksheetFunction.CountA(Range("A:A")) To 5 Step -1 If Cells(ii, 1) <> Cells(ii - 1, 1) Then Cells(ii, 1).EntireRow.Select Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Cells(ii, 1) = ";" End If Next ii
Le problème est dû à la taille du fichier, il y a dans celui que je teste 70 000 lignes. (et j'aimerais bien que ça marche pour 100 000 lignes environ.
Du coup j'me suis dit qu'une solution possible c'était de faire la même marco plusieurs fois à la suite:
-la première va de la 100 000 à 80 000 ligne
- la seconde de 80 000 à 60 000 ligne
etc
Mais ça à l'air de rien changer (peut-être qu'il faut que je fasse des intervalles encore plus petit mais j'aime pas voir mon code grossir de la sorte.)
Voilà, si quelqu'un a une idée je suis preneur.
Marci, bonne journée.
A voir également:
- Problème de mémoire
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Mémoire virtuelle pour 32 go de ram - Guide
2 réponses
vérifier que la variable ii ne soit jamais négative ... avec:
if (ii <0) then ii = 0
Logiquement un PC d'aujourd'hui est plus que capable de travailler sur 100 000 lignes sans aucune difficulté
if (ii <0) then ii = 0
Logiquement un PC d'aujourd'hui est plus que capable de travailler sur 100 000 lignes sans aucune difficulté
ah!
Merci mais en fait j'ai changé de code,
vu que je sais exactement où je dois insérer mes ";" j'ai mis ce code là:
(possible qu'il y ait une erreur de frappe, j'ai pas encore testé)
aller, merci, salut!
Merci mais en fait j'ai changé de code,
vu que je sais exactement où je dois insérer mes ";" j'ai mis ce code là:
Dim ii As Long For ii = Application.WorksheetFunction.CountA(Range("A:A")).Offset(1, 0) To 5 Step -nbj * 24 Cells(ii, 1).Select Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next ii
(possible qu'il y ait une erreur de frappe, j'ai pas encore testé)
aller, merci, salut!