Somme.si sur VBA

Bonjour,

je debute dans le code VBA

qui peux me dire ce qui ne va pas dans cette fonction ?

Excel :

somme.si ( b2:b10;A2;Q2:Q10)

VBA :

Application.WorksheetFunction.SumIf(Range("B2:B10"), Cells(i & 1), Range("Q2:Q10"))

Bonjour

Essayes

Sub test()
resultat = Application.WorksheetFunction.SumIf(Range("B2:B10"), Cells(2, "A"), Range("Q2:Q10"))
End Sub

Ou

Sub test()
resultat = Application.WorksheetFunction.SumIf(Range("B2:B10"), Cells(2, 1), Range("Q2:Q10"))
End Sub

Merci banzai

je n'ai pas précisé que la formule verie en fonction de la ligne.

voici le code en entier :

Sub sport()

j = 10
For i = 2 To j
Sheets("SXX").Select
A = Application.WorksheetFunction.SumIf(Range("B2:B10"), cells(i, 1), Range("Q2:Q10"))
Sheets("TEST3").Select
Range("B" & i) = A

Next i

End Sub

Bonjour

Essayes cette macro simplifiée

Sub sport()

  With Sheets("SXX")
    For i = 2 To 10
      Sheets("TEST3").Range("B" & i) = Application.WorksheetFunction.SumIf(.Range("B2:B10"), .Cells(i, 1), .Range("Q2:Q10"))
    Next i
  End With
End Sub

Ca ne fonctionne pas

il trouve 0 alors qu'il y a des données

Bonjour

Fournis un fichier, car sur mon fichier test j'ai un résultat

la fonction excel ci dessous me donne le bon résultat meme qd je copie la formule en bas

le fichier est joint

EXCEL   =SOMME.SI('SXX'!B:B;TEST3!A3;'SXX 2013'!Q:Q)
399classeur2.zip (10.04 Ko)

Bonjour

Si entre temps tu changes les conditions

Avant la formule allait de 2 à 10 pour la colonne B et la colonne Q

Même avec ta formule Excel on n'a pas la page "SXX 2013" !!!!

Essayes ça

Sub sport2()

  With Sheets("SXX")
    For i = 2 To 10
      Sheets("TEST3").Range("B" & i) = Application.WorksheetFunction.SumIf(.Columns("B"), Sheets("TEST3").Cells(i, 1), .Range("Q1:Q65536"))
    Next i
  End With
End Sub

Merci banzai

ca fonctionne super !!

j'avoue que j'ai mal posé le probleme

Rechercher des sujets similaires à "somme vba"