Formule trop longue pour VBA
Bonjour à tous,
Pour un reporting j'ai une formule excel à intégrer en VBA, elle fait 577 caractères alors que VBA n'en accepte que 500.
Voici ma formule :
Code:
1 2
| "=IF(RC[-8]=""BCG CALCULATION"",""BCG CALCULATION"",IF(RC[-8]=""BAC CALCULATION"",""BAC CALCULATION"",IF(RC[-8]=""TO BE PUSHED"", ""TO BE PUSHED"",IF(RC[-8]= ""OUT OF OFS SCOPE"",""OUT OF OFS SCOPE"",IF(RC[-8]=""ISM CALCULATION"",""ISM CALCULATION"",IF(RC[-8]=""SRS CALCULATION"",""SRS CALCULATION"",IF(RC[-8]=""AMOUNT"",""AMOUNT"",IF(AND(RC[-11]=""NON " & _
"RC[-8]<>""OFS DATA MODEL""),""MISSING MAPPING OFS/UP"",IF(RC[-8]=""OFS DATA MODEL"",""OFS DATA MODEL"",IF(OR(RC[1]=""OUI"",RC[2]=""OUI"",RC[3]=""OUI""),""OUI"",""NOT CONTROLLED YET""))))))))))" |
En fouillant un peu sur le net, j'ai trouvé des solutions pour séparer en deux ma formule grace à VBA et ce code :
Code:
1 2 3 4 5 6 7 8 9
| Dim FormulaPart1 As String, FormulaPart2 As String
FormulaPart1 = "=IF(RC[-8]=""BCG CALCULATION"",""BCG CALCULATION"",IF(RC[-8]=""BAC CALCULATION"",""BAC CALCULATION"",IF(RC[-8]=""TO BE PUSHED"", ""TO BE PUSHED"",IF(RC[-8]= ""OUT OF OFS SCOPE"",""OUT OF OFS SCOPE"",IF(RC[-8]=""ISM CALCULATION"",""ISM CALCULATION"",IF(RC[-8]=""SRS CALCULATION"",""SRS CALCULATION"",IF(RC[-8]=""AMOUNT"",""AMOUNT"",IF(AND(RC[-11]=""NON " & "RC[-8]<>""OFS DATA MODEL""),""MISSING MAPPING OFS/UP"",XXX))))))))"
FormulaPart2 = "IF(RC[-8]=""OFS DATA MODEL"",""OFS DATA MODEL"",IF(OR(RC[1]=""OUI"",RC[2]=""OUI"",RC[3]=""OUI""),""OUI"",""NOT CONTROLLED YET""))"
With ActiveSheet.Range("A2")
.FormulaArray = FormulaPart1
.Replace "XXX", FormulaPart2, lookat:=xl
End With |
Mais je bute sur une erreur 1004 "Impossible de définir la propriété FormulaArray de la classe Range.
Merci pour votre aide,
Cordialement,
Kair0