Dépassement de mémoire (sans allocation d'objet) lors de l'exécution d'une macro simple
Bonjour,
Je suis confronté à un problème que je ne comprends pas trop. J'essaye de faire tourner la macro suivante et au bout d'un temps j'ai un message d'erreur de dépassement de mémoire. Je ne sais pas s'il existe une instruction permettant d'éviter cette saturation de mémoire.
La macro a pour but de coloré en bleu les caractères soulignés et en rouge les caractères barrés.
Pour information je fais tourner cette macro sur un fichier de 2700 ligne et 8 colonnes. Or chaque case peut contenir un texte de 2000 caractères.
J'ai remarqué que la mémoire saturait après un certain nombre de "coloration" et pas en fonction du nombre d'élément vérifié.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Sub ModifCouleur()
Dim fichier As Worksheet
Set fichier = Workbooks("PSPEC DELTA.xlsx").Worksheets("Feuil1")
Dim i As Long
Dim j As Long
Dim k As Long
j = 1
Do While j < 9
i = 1
Do While i < 2794
For k = 0 To Len(fichier.Cells(i, j))
If fichier.Cells(i, j).Characters(k, 1).Font.Strikethrough = True Then
fichier.Cells(i, j).Characters(k, 1).Font.ColorIndex = 3
End If
If fichier.Cells(i, j).Characters(k, 1).Font.Underline = xlUnderlineStyleSingle Then
fichier.Cells(i, j).Characters(k, 1).Font.ColorIndex = 32
End If
Next k
i = i + 1
Loop
j = j + 1
Loop
End Sub |
Merci d'avance,
Bien à vous,
Misty