Somme de cellules selon critère
Résolu
lili4915
Messages postés
13
Statut
Membre
-
lili4915 Messages postés 13 Statut Membre -
lili4915 Messages postés 13 Statut Membre -
Bonjour,
Je souhaiterais créer un programme qui recherche dans ma colonne B les lignes dont les chiffres sont supérieurs à 60000000 et qui somme les montants de la colonne G qui correspondent à ces mêmes lignes.
J’ai essayé avec la formule suivante mais elle m’affiche la somme de la colonne G entière et pas seulement sur les lignes dont le chiffre en B est > 60000000
Pouvez-vous m’aider ?
Merci d’avance
Je souhaiterais créer un programme qui recherche dans ma colonne B les lignes dont les chiffres sont supérieurs à 60000000 et qui somme les montants de la colonne G qui correspondent à ces mêmes lignes.
J’ai essayé avec la formule suivante mais elle m’affiche la somme de la colonne G entière et pas seulement sur les lignes dont le chiffre en B est > 60000000
Option Explicit
Const lignedeb = 2
Sub test()
Dim lignefin
Dim i
Dim somme
With ActiveSheet
lignefin = .Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
If Cells(i, 2).Value >= 60000000 Then
somme = Application.WorksheetFunction.Sum(Range("G" & lignedeb & ":G" & lignefin))
MsgBox (somme)
End If
Next i
End With
End Sub
Pouvez-vous m’aider ?
Merci d’avance
2 réponses
-
Bonjour
Essaies ceciConst lideb = 2 Sub test() Dim lifin As Long, i As Long, somme With ActiveSheet lifin = .Range("B" & Rows.Count).End(xlUp).Row somme = 0 For i = 1 To Range("B" & Rows.Count).End(xlUp).Row If Range("B" & i).Value >= 60000000 Then somme = somme + Range("G" & i).Value End If Next i MsgBox somme End With End Sub
NB. Penses à la coloration syntaxique
Cdlmnt-
Merci de m'avoir répondu,
il y a une incompatibilité de type avec la ligne "somme = somme + Range("G" & i).Value"
Entre temps j'ai trouvé une formule qui fonctionne, cependant le MsgBox s'affiche autant de fois qu'il y a de lignes dans mon tableau, vous savez peut-être comment régler ce problème ?
Option Explicit
Const lignedeb = 2
Sub test()
Dim lignefin
Dim i
Dim somme
With ActiveSheet
lignefin = .Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To Range("B" & Rows.Count).End(xlUp).Row
If Cells(i, 2).Value >= 60000000 Then
somme = Application.WorksheetFunction.SumIf(Columns("B:B"), ">60000000", Columns("G:G"))
MsgBox (somme)
End If
Next i
End With
End Sub
Je m'excuse je n'ai pas trouvé la coloration syntaxique
-