Soucis macro avec if ou countif en fonction de 2 conditions

Salut à tous,

voici mon probleme, je souhaiterai obtenir en cellule (15,3) le total de A en fonction des couleurs et pour 70

voici mon code mais ne fonctionne pas

Dim i As Integer 'row
Dim j As Integer 'column
Dim c As Integer

Function couleur(cellule As Range) As Integer
    couleur = cellule.Interior.ColorIndex
End Function
Sub calcul_poste()

For j = 1 To 20
c = 0
For i = 1 To 20

If couleur(Cells(10, 3)) = 2 Or couleur(Cells(10, 3)) = 10 And Cells(10, 3).Value = "A" Then
If Range(B1, B10) = 70 Then
c = 1 + c
End If
Cells(14, 3).Value = c
End If

Next

Next

End Sub
22total-a.zip (7.17 Ko)

Bonjour catiempeguy,

Je ne suis pas sûr d’avoir bien saisi ton problème.

Le code que je te propose permet d’obtenir en cellule B15 le total de couples de cellules qui satisfont aux conditions suivantes :

  • Couleur verte ou rouge de la cellule en colonne C
  • Valeur "A " en en colonne C
  • Valeur 70 en colonne B
Function couleur(cellule As Range) As Integer
    couleur = cellule.Interior.ColorIndex
End Function
Sub calcul_poste()
Dim i As Integer
Dim Total As Integer
    With Worksheets("Sheet1")
        For i = 6 To .Range("B6").End(xlDown).Row
            If couleur(.Cells(i, 3)) = 3 Or couleur(.Cells(i, 3)) = 10 And .Cells(i, 3).Value = "A" And .Cells(i, 2) = 70 Then
                Total = 1 + Total
            End If
        Next
        Cells(15, 2).Value = "total A = " & Total
    End With
End Sub

A+

salut Frangy,

En fait je souhaite otenir en C15, le nombre de A avec les couleurs blanche ou verte en colonne C et ayant le critere de 70 en colonne B.

Dur à expliquer.

Guy

Tu peux adapter le code sachant que

  • la couleur 3 c'est le rouge,
  • la couleur 10 c'est le vert,
et -4142 pour aucune couleur.

A+

Désolé Frangy mais cela ne fonctionne pas avec ce code

Function couleur(cellule As Range) As Integer
    couleur = cellule.Interior.ColorIndex
End Function
Sub calcul_poste()
Dim i As Integer
Dim Total As Integer
    With Worksheets("Sheet1")
        For i = 6 To 12
            If couleur(.Cells(i, 3)) = 3 Or couleur(.Cells(i, 3)) = 10 And Cells(i, 3).Value = "A" Then
            If Cells(i, 2).Value = "70" Then
            Total = 1 + Total
            End If
                Cells(15, 3).Value = Total
                End If
    End With
End Sub

Essaie comme cela

Function couleur(cellule As Range) As Integer
    couleur = cellule.Interior.ColorIndex
End Function
Sub calcul_poste()
Dim i As Integer
Dim Total As Integer
    With Worksheets("Sheet1")
        For i = 6 To 12
            If (couleur(.Cells(i, 3)) = -4142 Or couleur(.Cells(i, 3)) = 10) And Cells(i, 3).Value = "A" And Cells(i, 2).Value = "70" Then
                Total = 1 + Total
            End If
        Next
        Cells(15, 3).Value = Total
    End With
End Sub

A+

Rechercher des sujets similaires à "soucis macro countif fonction conditions"