Question
Je vais avoir des problèmes avec un script VBA. La fonction remplit une feuille avec quelques formules. Il fonctionne très bien la plupart du temps, mais quand je le lance sur un ensemble de données plus ... il se bloque avec:
Erreur d'exécution '1004': La méthode AutoFill de classe Range a échoué
Les points de débogueur au dernier appel AutoFill. Quand je regarde la feuille, il semble que l'appel AutoFill a travaillé environ 3/4 du chemin, mais arrête.
With Sheets("OPENS")
' Fill OPENS formulas
.Range("B" & firstRowOPENS - 3) = "=DATE(YEAR($B$1), MONTH($B$1)+2, DAY($B$1))"
.Range("B" & firstRowOPENS - 3).NumberFormat = "[$-409]mmm-yy;@"
.Range("C" & firstRowOPENS - 3) = "=C1+2"
.Range("B" & firstRowOPENS - 1) = "=SUBTOTAL(109,B" & firstRowOPENS & ":B" & lastRowOPENS & ")"
.Range("B" & firstRowOPENS - 1).AutoFill .Range("B" & firstRowOPENS - 1 & ":" & lastColOPENS & firstRowOPENS - 1), xlFillValues
.Range("B" & firstRowOPENS) = "=SUM(C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS & ")"
.Range("C" & firstRowOPENS).FormulaArray = "=SUM( ('Combined Input'!R2C2:R" & lastRowCI & "C2=RC1) * ('Combined Input'!R2C45:R" & lastRowCI & "C45=R2C) * ('Combined Input'!R2C43:R" & lastRowCI & "C43 = R1C4) * INDEX('Combined Input'!R2C5:R" & lastRowCI & "C40, 0,R" & firstRowOPENS - 3 & "C3,1)) * R[-" & (lastRowOPENS - firstRowOPENS + 5) * 2 & "]C" & OPENS_PROB_COL
.Range("C" & firstRowOPENS).AutoFill .Range("C" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS), xlFillValues
If lastRowOPENS > firstRowOPENS Then
.Range("B" & firstRowOPENS & ":" & lastColOPENS & firstRowOPENS).AutoFill .Range("B" & firstRowOPENS & ":" & lastColOPENS & lastRowOPENS), xlFillValues
End If
setBorders .Range("A" & firstRowOPENS - 2 & ":" & lastColOPENS & lastRowOPENS)
End With
Toutes les suggestions?
Edit:
J'ai trouvé le problème: http://support.microsoft.com/kb/166342
"Dans Excel 2003 et dans les versions antérieures d'Excel, une seule feuille peut contenir un maximum de 65472 formules de tableau qui font référence à une autre feuille de calcul. Si vous voulez utiliser plus de formules, diviser les données en plusieurs feuilles de calcul afin qu'il y ait moins que 65,472 références à une seule feuille de calcul. «
La solution
http://support.microsoft.com/kb/166342
"Dans Excel 2003 et dans les versions antérieures d'Excel, une seule feuille peut contenir un maximum de 65472 formules de tableau qui font référence à une autre feuille de calcul. Si vous voulez utiliser plus de formules, diviser les données en plusieurs feuilles de calcul afin qu'il y ait moins que 65,472 références à une seule feuille de calcul. «