NICOALBERT
XLDnaute Occasionnel
Bonsoir le forum ,
Je vient vers vous car je suis en cours de réaliser un fichier avec des formule matricielle le tout par macro (recherche et activation) .
Ceux qui font moins de 255 caractères marche très bien mais pour ceux supérieur à 255 caractères j'ai un message d'erreur "Erreur d'exécution '1004': Impossible de définir la propriété FormulaArray de la classe Range" .
Voici la macro que j'utilise :
Sub MacroPerformanceFaceAFace()
'
' MacroPerformanceFaceAFace Macro
'
Sheets("Formule").Select ' Performance Globale EQ2
Range("B23").Select
ActiveCell.FormulaR1C1 = _ "=INDEX(Base!R1C7:R500000C7,LARGE(IF(Base!R2C1:R500000C1=Base!R3C1:R500001C1,IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R1C4&R11C4,ROW(Base!R2C1:R500000C1),IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R11C4&R1C4,ROW(Base!R3C5:R500001C5)))),COLUMNS(C1:C[-1])))"
Range("B23").Select
Selection.FormulaArray = _ "=INDEX(Base!R1C7:R500000C7,LARGE(IF(Base!R2C1:R500000C1=Base!R3C1:R500001C1,IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R1C4&R11C4,ROW(Base!R2C1:R500000C1),IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R11C4&R1C4,ROW(Base!R3C5:R500001C5)))),COLUMNS(C1:C[-1])))"
Selection.Copy ' Copie les valeurs
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False 'colle valeur sans formule
End Sub
Est ce que quelqu'un a une idée pour ne pas utiliser "FormulaArray" ou différemment ?
Cdlt Nicoalbert .
Je vient vers vous car je suis en cours de réaliser un fichier avec des formule matricielle le tout par macro (recherche et activation) .
Ceux qui font moins de 255 caractères marche très bien mais pour ceux supérieur à 255 caractères j'ai un message d'erreur "Erreur d'exécution '1004': Impossible de définir la propriété FormulaArray de la classe Range" .
Voici la macro que j'utilise :
Sub MacroPerformanceFaceAFace()
'
' MacroPerformanceFaceAFace Macro
'
Sheets("Formule").Select ' Performance Globale EQ2
Range("B23").Select
ActiveCell.FormulaR1C1 = _ "=INDEX(Base!R1C7:R500000C7,LARGE(IF(Base!R2C1:R500000C1=Base!R3C1:R500001C1,IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R1C4&R11C4,ROW(Base!R2C1:R500000C1),IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R11C4&R1C4,ROW(Base!R3C5:R500001C5)))),COLUMNS(C1:C[-1])))"
Range("B23").Select
Selection.FormulaArray = _ "=INDEX(Base!R1C7:R500000C7,LARGE(IF(Base!R2C1:R500000C1=Base!R3C1:R500001C1,IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R1C4&R11C4,ROW(Base!R2C1:R500000C1),IF(Base!R2C5:R500000C5&Base!R3C5:R500001C5=R11C4&R1C4,ROW(Base!R3C5:R500001C5)))),COLUMNS(C1:C[-1])))"
Selection.Copy ' Copie les valeurs
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False 'colle valeur sans formule
End Sub
Est ce que quelqu'un a une idée pour ne pas utiliser "FormulaArray" ou différemment ?
Cdlt Nicoalbert .