Bonjour à tous,
Je fais une nouvelle fois appel à votre maîtrise pour trouver l'explication de mon problème.
Je souhaite insérer une formule qui va s’incrémenter et chercher dans plusieurs feuilles des somme.si.ens, selon le nombre de feuilles.
Il y a actuellement une trentaine de feuilles.
Lorsque je lance la macro, la 1e ligne fait s’arrêter le code, et indique une erreur 7 « Mémoire insuffisante ».
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Formules_Graph() Dim n As Integer Dim FormuleCelluleC, FormuleCelluleD, FormuleCelluleE, FormuleCelluleF, FormuleCelluleG, FormuleCelluleL As String FormuleCelluleC = "=0" FormuleCelluleD = "=0" FormuleCelluleE = "=0" FormuleCelluleF = "=0" FormuleCelluleG = "=0" FormuleCelluleL = "=0" For n = 10 To Sheets.Count FormuleCelluleC = FormuleCelluleC & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" 'FormuleCelluleD = FormuleCelluleD & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" 'FormuleCelluleE = FormuleCelluleE & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" 'FormuleCelluleF = FormuleCelluleF & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" 'FormuleCelluleG = FormuleCelluleG & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" 'FormuleCelluleL = FormuleCelluleL & "+SOMME.SI.ENS('" & Sheets(n).Name & "'!$I$4:$I$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))-SOMME.SI.ENS('" & Sheets(n).Name & "'!$J$4:$J$1500;'" & Sheets(n).Name & "'!$G$4:$G$1500;"" >= ""&$B4;'28'!$G$4:$G$1500;"" <= ""&FIN.MOIS($B4;0))" Next MsgBox (FormuleCelluleC) MsgBox (FormuleCelluleD) Range("C4").FormulaLocal = FormuleCelluleC Range("D4").FormulaLocal = FormuleCelluleD Range("E4").FormulaLocal = FormuleCelluleE Range("F4").FormulaLocal = FormuleCelluleF Range("G4").FormulaLocal = FormuleCelluleG Range("L4").FormulaLocal = FormuleCelluleL End Sub
A priori, il y a environ 9000 caractères dans la chaine string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("C4").FormulaLocal = FormuleCelluleC
Savez-vous comment résoudre cet épineux sujet ? Je n’ai rien trouvé, hormis spécifier string*64000 pour dimensionner mes variables, mais ça ne change rien.
Merci pour votre aide.
A vous lire
Partager