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 ?
N'hésitez pas s'il manque certaines informations pour mieux comprendre ma problématique.
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 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
Un grand merci pour votre aide !
Bonne journée,
Victor
Partager