Bonjour,
Je voudrais mettre par macro une formule dans une cellule (ca doit impérativement etre fait par macro).
J'ai commencé par construire ma formule
Et puis j'ai voulu utiliser l'enregisteur de macro pour qu'il me la convertisse en code VBA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =IF(B259<C259;IF(SUMIF(S12:S222;"<>0";W12:W222)+SUMIFS(Y12:Y222;S12:S222;"<>0";Y12:Y222;"<0")<0;"-";"")&IFERROR(TEXT(ABS(SUMIF(S12:S222;"<>0";W12:W222)+SUMIFS(Y12:Y222;S12:S222;"<>0";Y12:Y222;"<0"));"[h]:mm");TEXT(ABS(SUMIF(S12:S222;"<>0";W12:W222)+SUMIFS(Y12:Y222;S12:S222;"<>0";Y12:Y222;"<0"));"[u]:mm"));"")
Il a écrit ca
Mais si j'exécute le code tel quel, il plante avec une "Run-timme error 1004"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Range("L225").Select ActiveCell.FormulaR1C1 = _ "=IF(R[34]C[-10]<R[34]C[-9],IF(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")<0,""-"","""")&IFERROR(TEXT(ABS(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")" & _ "mm""),TEXT(ABS(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")),""[u]:mm"")),"""")" Range("L226").Select
C'est la premiere fois que l'enregisteur me fais ce coup la (j'avoue que je me sens assez trahie)
J'ai corrigé le code
Et maintenant ca fonctionne, mais je ne comprend pas pourquoi l'enregistreur se comporte de cette facon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("L225").FormulaR1C1 = "=IF(R[34]C[-10]<R[34]C[-9],IF(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")<0,""-"","""")&IFERROR(TEXT(ABS(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")),""[h]:mm""),TEXT(ABS(SUMIF(R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[11]:R[-3]C[11])+SUMIFS(R[-213]C[13]:R[-3]C[13],R[-213]C[7]:R[-3]C[7],""<>0"",R[-213]C[13]:R[-3]C[13],""<0"")),""[u]:mm"")),"""")"
Qu'est-ce qu'il lui a pris de manger une partie du code en milieu de formule?
Au lieu d'écrire
il a mit ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part ),""[h]:
Ca fonctionne et donc c'est pas si grave, mais je ne comprend pas ce qui s'est passé
Code : Sélectionner tout - Visualiser dans une fenêtre à part " & "
Quelqu'un a une idée?
Merci
Partager