XL 2016 Problème VBA Application.WorksheetFunction.SumIf

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

luffy94340

XLDnaute Nouveau
Bonjour à tous et à toutes.

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.

merci encore pour votre aide.
cdt

cyril
 

Pièces jointes

Bonjour Luffy,
Essayez ça :
Code:
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.
 
Bonjour Luffy,
Essayez ça :
Code:
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.

Bonjour Sylvanu,

merci encore pour votre réponse, c'est parfait. Je n'avais vu le petit détail qui change tout avec sumifs.
c'est très efficace.

Bonne journée.🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
645
Réponses
5
Affichages
566
Réponses
7
Affichages
622
Réponses
3
Affichages
899
  • Question Question
Microsoft 365 Recherche v + VBA
Réponses
3
Affichages
2 K
Retour