FormulaArray - Replace ne fonctionne pas
Bonjour à tous,
Je suis nouveau sur le forum mais je viens régulièrement consulter le forum pour de l'aide dans mes projets. Un grand bravo pour toutes les informations que l'on peut y trouver !
Je travaille actuellement sur un projet VBA Excel que je veux rendre accessible aux utilisateurs des versions Excel plus anciennes. J'ai une feuille de statistiques dans laquelle je souhaite mettre à jour les formules avec ma macro. Je suis bloqué par la limite de 255 caractères de FormulaArray (pour Excel 2007 par exemple). J'ai lu sur des forums que le moyen de contournement est d'utiliser la fonction Replace. J'ai beau essayer dans tous les sens, je ne parviens pas à mes fins. La fonction Replace ne semble pas avoir d'effet.
A noter :
- j'ai essayé de faire manuellement le remplacement dans Excel, cela fonctionne
- j'ai enregistré une macro lorsque je fais manuellement l'opération de remplacement. Lorsque je tente d'utiliser le code généré, la fonction Replace ne fonctionne pas (aucun remplacement n'est effectué).
Pouvez-vous m'aider à corriger le code ci-dessous ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Sub MAJ_Stats()
Dim Part() As String
ReDim Part(1 To 3)
Dim DernLig As Integer
DernLig = 68
For i = 1 To 3
Part(i) = "SOMME(NB.SI.ENS(" & Sheets(i + 1).Name & "!$C" & DernLig + 1 & ":$AG" & DernLig + 1 & ";Sites[Nom court];" & Sheets(i + 1).Name & "!$C$7:$AG$7;""<>Dim""))"
Next i
Cells(32, 2).FormulaArray = "=Partie1+Partie2+Partie3"
For i = 1 To 3
Cells(32, 2).Replace What:="Partie" & i, Replacement:=Part(i), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Next i
End Sub |
N'hésitez pas s'il manque certaines informations pour mieux comprendre ma problématique.
Un grand merci pour votre aide !
Bonne journée,
Victor