Après avoir trouvé un code VBA qui utilise Sumif sur le net, j'ai voulu l'adapté à mes besoins mais n'y est arrivé que partiellement.
J'ai un Feuille "SXX" qui est une extraction d'une base de donnée et une autre feuille de destination "Export"
je souhaite récupérer les valeurs de la colonne H de "SXX" vers "Export" en O à condition qu'elles correspondent aux critères de la colonne B et C
je ai réussi a l'adapté que pour la colonne B mais par pour ma deuxième condition colonne C(voir code).
Je voudrais avoir l'équivalence de cette formule excel (voir exemple en colonne P de Export) :
=SOMME.SI.ENS(mttc;clts;myclts;tva;Mytva)
les plages :
mttc =colonne H de SXX
clts = colonne C de SXX
myclts = colonne B de Export
tva = colonne B de SXX
Mytva = colonne C de Export
voici le code vba
VB:
Sub test()
Dim ws As Worksheet
With Sheets("SXX")
For i = 2 To 12
Sheets("Export").Range("O" & i) = Application.WorksheetFunction.SumIf(.Columns("C"), Sheets("Export").Cells(i, 2), .Range("H1:H65536"))
Next i
End With
End Sub
Etant débutant.J'ai réussi à me faire des noeuds au cerveau.
Sub test()
Dim ws As Worksheet
With Sheets("SXX")
For i = 2 To 12
Sheets("Export").Range("O" & i) = Application.WorksheetFunction.SumIfs([mttc], _
[clts], Sheets("Export").Cells(i, 2), [tva], Sheets("Export").Cells(i, 3))
Next i
End With
End Sub
C'est SumIfs et non SumIf ( Somme.si.ens et non Somme.si )
Il vous manquait des parametres dans le SumIfS. ( zone somme, plage1, critere1... plageN,CritereN)
Comme vous avez appelé vos colonnes, autant les utiliser. C'est plus lisible.
Sub test()
Dim ws As Worksheet
With Sheets("SXX")
For i = 2 To 12
Sheets("Export").Range("O" & i) = Application.WorksheetFunction.SumIfs([mttc], _
[clts], Sheets("Export").Cells(i, 2), [tva], Sheets("Export").Cells(i, 3))
Next i
End With
End Sub
C'est SumIfs et non SumIf ( Somme.si.ens et non Somme.si )
Il vous manquait des parametres dans le SumIfS. ( zone somme, plage1, critere1... plageN,CritereN)
Comme vous avez appelé vos colonnes, autant les utiliser. C'est plus lisible.