Bonjour,

j'ai trouvé par hasard que les paramètres des fonctions associées à une ou 
plusieurs cellules sont des tableaux bidimentionnels directement 
utilisables, il n'est donc pas nécessaire de faire des appels à des 
fonctions de type getRows(), getCount() etc.
de l'Excel :
'   Equivalent de SOMME.SI
Public Function SommeProduitSi(test As Range, colonne1 As Range, colonne2 
As Range) As Double
    Dim SPS As Double
    Dim i as integer
 
    SPS = 0
    For i = 1 To test.Rows.Count
        If test.Cells(i, 1).Value Then
            SPS = SPS + colonne1.Cells(i, 1).Value * colonne2.Cells(i, 
1).Value
        End If
    Next
    SommeProduitSi = SPS
End Function

à VB OoO :
Public Function SommeProduitSi(test As Object , colonne1 As Object , 
colonne2 As Object ) As Double
    Dim SPS As Double
    Dim i as integer
 
'    Xray.XRay test 
    SPS = 0
    For i = LBound(test) To UBound(test)
        If test(i,1) Then
            SPS = SPS + colonne1(i,1) * colonne2(i,1)
        End If
    Next
    SommeProduitSi = SPS
End Function

Merci pour votre aide à tous,

Olivier. 

Répondre à