1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Public Function Mon_Somme_Si_Ens( _
prmZoneSomme As Range, prmZoneCritere01 As Range, prmCritere01 As Variant, _
Optional prmZoneCritere02 As Variant, Optional prmCritere02 As Variant, Optional prmZoneCritere03 As Variant, Optional prmCritere03 As Variant, Optional prmZoneCritere04 As Variant, Optional prmCritere04 As Variant, Optional prmZoneCritere05 As Variant, Optional prmCritere05 As Variant, Optional prmZoneCritere06 As Variant, Optional prmCritere06 As Variant, _
Optional prmZoneCritere07 As Variant, Optional prmCritere07 As Variant, Optional prmZoneCritere08 As Variant, Optional prmCritere08 As Variant, Optional prmZoneCritere09 As Variant, Optional prmCritere09 As Variant, Optional prmZoneCritere10 As Variant, Optional prmCritere10 As Variant, Optional prmZoneCritere11 As Variant, Optional prmCritere11 As Variant, _
Optional prmZoneCritere12 As Variant, Optional prmCritere12 As Variant, Optional prmZoneCritere13 As Variant, Optional prmCritere13 As Variant, Optional prmZoneCritere14 As Variant, Optional prmCritere14 As Variant) As Double
'Fait un somme.si.ens sur plusieurs colonnes avec un test sur une seule colonne
Dim result As Double: result = 0
Dim ligne As Range
Dim colonne As Range
For Each colonne In prmZoneSomme.Columns
result = result + Application.WorksheetFunction.SumIfs( _
colonne, prmZoneCritere01, prmCritere01, _
prmZoneCritere02, prmCritere02, prmZoneCritere03, prmCritere03, prmZoneCritere04, prmCritere04, prmZoneCritere05, prmCritere05, prmZoneCritere06, prmCritere06, _
prmZoneCritere07, prmCritere07, prmZoneCritere08, prmCritere08, prmZoneCritere09, prmCritere09, prmZoneCritere10, prmCritere10, prmZoneCritere11, prmCritere11, _
prmZoneCritere12, prmCritere12, prmZoneCritere13, prmCritere13, prmZoneCritere14, prmCritere14)
Next colonne
Mon_Somme_Si_Ens = result
End Function |
Partager