PB VBA

Fermé
tiger202020 - Modifié par tiger202020 le 7/01/2017 à 09:55
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 7 janv. 2017 à 22:23
Bonjour,

J'ai besoin de modifier une macro en VBA (Non écrite par moi...).
Je voudrais rajouter une condition sur la ligne :
F.[T1].FormulaR1C1 = "=SUMIF(R2C5:R" & DerLig & "C5,""Y"",R2C13:R" & DerLig & "C13)"

-> Calcul à faire uniquement pour les cellules ou il y a l'année 2017 dans la colonne C de ma feuille "Data"

Merci de votre aide !

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim F As Worksheet, PlgM As Range, DerLig As Long
If Application.CutCopyMode <> 0 Then Exit Sub
Set F = Sh
If F.Name = "Data" Then Exit Sub
If F.Name = "Stats" Then Exit Sub
If F.Name = "Report" Then Exit Sub
If F.Name = "Stats" Then Exit Sub
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
F.[A2:S50000].Delete xlShiftUp
With Intersect(Feuil1.[S2:S50000], Feuil1.UsedRange)
.FormulaR1C1 = "=1/(RC10=""" & F.Name & """)"
On Error Resume Next
Set PlgM = .SpecialCells(xlCellTypeFormulas, 1)
On Error GoTo 0
If Not PlgM Is Nothing Then Intersect(Feuil1.[A:S], PlgM.EntireRow).Copy F.[A2]
.ClearContents
End With
Feuil1.[S2:S4].Copy F.[S2:S4]
DerLig = F.UsedRange.Rows.Count
F.[T1].FormulaR1C1 = "=SUMIF(R2C5:R" & DerLig & "C5,""Y"",R2C13:R" & DerLig & "C13)"
Application.Calculation = xlCalculationAutomatic
End Sub

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 699
7 janv. 2017 à 22:23
Bonjour,

Il te faut changer ta formule de somme.si par une sommeprod car tu pourras mettre d'autres paramètres ainsi. Cela devrait donner :
 F.[T1].FormulaR1C1 = "=SUMPRODUCT((R2C3:R" & DerLig & "C3=2017)*(R2C5:R" & DerLig & "C5=""Y"")*R2C13:R" & DerLig & "C13)"
0