Modifier formule dans macro

bonjour le forum

je voudrais modifier la formule çi-dessous pour que les valeurs $B$5:$B$17soient aussi changer.

j'utilise la macro plus bas mais elle ne change que les valeurs $C$5:$V$17. Elle rajoute +2 a 5 et 17 qui passe en $C$7:$V$19.

comment faut-il la modifier

merci

=SOMMEPROD((Feuil1!$B$5:$B$17="midi")*(Feuil1!$C$5:$V$17=A2))
[quote]'Ajout +2
Sheets("Mi7").Select
 'change formule B2
Dim Ligne As Integer
Dim Str() As String
'recherche du dernier numéro de la formule
Str = Split(Sheets("Mi7").Range("B2").FormulaLocal, "$")
Ligne = Split(Str(2), ":")(0) + 2
'mise en place de la nouvelle formule
Sheets("Mi7").Range("B2:B71").FormulaLocal = "=NB.SI(Feuil1!$C$" & Ligne & ":$V$" & Ligne + 12 & ";A2)"
ActiveSheet.Calculate[/quote]

Bonjour,

La formule initiale utilise SOMMEPROD et 2 critères :

  • "midi" en colonne B
  • Valeur égale à A2 en colonne dans la plage B5:B17.

Pour modifier la plage, tu peux utiliser :

=SOMMEPROD((Feuil1!$B$7:$B$19="midi")*(Feuil1!$C$7:$V$19=A2))

Soit :

Dim Ligne As Integer
Dim Str() As String
    Sheets("Mi7").Select
    Str = Split(Sheets("Mi7").Range("B2").FormulaLocal, "$")
    Ligne = Split(Str(2), ":")(0) + 2
    Sheets("Mi7").Range("B2:B71").FormulaLocal = "=SOMMEPROD((Feuil1!$B$" & Ligne & ":$B$" & Ligne + 12 & _
    "=""midi"")*(Feuil1!$C$" & Ligne & ":$V$" & Ligne + 12 & "=A2))"
    ActiveSheet.Calculate

A+

Rechercher des sujets similaires à "modifier formule macro"