Bonjour à toutes et tous,
Me voilà avec un autre souci. J'ai une formule Excel que je transforme (via l'enregistreur de macro) et il me donne une "erreur 1004 : erreur définie par l'application ou l'objet". Après recherche, si je ne me trompe, il est impossible d'avoir plusieurs critères pour un "COUNTIFS" en VBA. Du coup, je ne sais pas du tout comment je peux écrire ma formule en VBA. Pourriez-vous, svp, m'aider?
Mon code actuel en VBA :
Ma formule Excel que je désire appliquer en VBA :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Range("J2").FormulaR1C1 = _ "=IF(AND(COUNTIFS(C[-5],""VAC"",C[-2],RC[-2],C[-9],RC[-9])<>(SUM(COUNTIFS(C[-5],""LFO"",C[-2],RC[-2],C[-9],RC[-9]),COUNTIFS(C[-5],""LFT"",C[-2],RC[-2],C[-9],RC[-9]))),AND(RC[-5]=""VAC"",AND(RC[-4]>2.99,RC[-4]<4.01))),""VAC (1/2j)"",IF(AND(COUNTIFS(C[-5],""LFT"",C[-2],RC[-2],C[-9],RC[-9])<>(SUM(COUNTIFS(C[-5],""LFO"",C[-2],RC[-2],C[-9],RC[-9]),COUNTIFS(C[-5],""VAC"",C" & _ "-2],C[-9],RC[-9]))),AND(RC[-5]=""LFT"",AND(RC[-4]>2.99,RC[-4]<4.01))),""LFT (1/2j)"",IF(AND(COUNTIFS(C[-5],""LFO"",C[-2],RC[-2],C[-9],RC[-9])<>(SUM(COUNTIFS(C[-5],""VAC"",C[-2],RC[-2],C[-9],RC[-9]),COUNTIFS(C[-5],""LFT"",C[-2],RC[-2],C[-9],RC[-9]))),AND(RC[-5]=""LFO"",AND(RC[-4]>2.99,RC[-4]<4.01))),""LFO (1/2j)"","""")))"
Les critères intérieurs sont, comme vous le pourrez le constater, les mêmes. Il n'y a que le LFT, VAC, LFO qui change.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 =SI(ET(NB.SI.ENS(E:E;"VAC";H:H;H2;A:A;A2)<>(SOMME(NB.SI.ENS(E:E;"LFO";H:H;H2;A:A;A2);NB.SI.ENS(E:E;"LFT";H:H;H2;A:A;A2)));ET(E2="VAC";ET(F2>2,99;F2<4,01)));"VAC (1/2j)"; SI(ET(NB.SI.ENS(E:E;"LFT";H:H;H2;A:A;A2)<>(SOMME(NB.SI.ENS(E:E;"LFO";H:H;H2;A:A;A2);NB.SI.ENS(E:E;"VAC";H:H;H2;A:A;A2)));ET(E2="LFT";ET(F2>2,99;F2<4,01)));"LFT (1/2j)"; SI(ET(NB.SI.ENS(E:E;"LFO";H:H;H2;A:A;A2)<>(SOMME(NB.SI.ENS(E:E;"VAC";H:H;H2;A:A;A2);NB.SI.ENS(E:E;"LFT";H:H;H2;A:A;A2)));ET(E2="LFO";ET(F2>2,99;F2<4,01)));"LFO (1/2j)";"")))
Un grand merci d'avance pour votre aide.
Florent.
Partager