Bonjour,
Je suis en train d'écrire une macro et je tourne en rond depuis plus de 3h. Quelqu'un pour m'aider s'il vous plait?
Cette fonction a pour but de renvoyer des "0" et des "1" selon le remplissage de la cellule. Cette fonction fonctionne très bien, mais une fois placé dans la formule suivante, c'est le drame:
Je pense que la fonction "couleur" doit renvoyer à une matrice pour que la formule précédent puisse fonctionner. Mais je n'arrive pas à comprendre comment faire.
J'ai donc essayé ce code, mais rien à faire:
Pouvez-vous m'aider?
Je suis en train d'écrire une macro et je tourne en rond depuis plus de 3h. Quelqu'un pour m'aider s'il vous plait?
Code:
Public Function couleur(sel As Range)
Application.Volatile
If sel.Interior.ColorIndex > 0 Then
couleur = 1
Else
couleur = 0
End If
End Function
Cette fonction a pour but de renvoyer des "0" et des "1" selon le remplissage de la cellule. Cette fonction fonctionne très bien, mais une fois placé dans la formule suivante, c'est le drame:
Code:
=SOMMEPROD(couleur(IF5:IF72);$C$5:$C$72;$IL$5:$IL$72)
Je pense que la fonction "couleur" doit renvoyer à une matrice pour que la formule précédent puisse fonctionner. Mais je n'arrive pas à comprendre comment faire.
J'ai donc essayé ce code, mais rien à faire:
Code:
Function couleur(sel As Object) As Variant
Application.Volatile
Dim temp As Variant
Dim i As Integer, j As Integer
temp = sel.Interior.ColorIndex
If IsArray(sel) Then
For i = 1 To UBound(temp, 1)
For j = 1 To UBound(temp, 2)
If temp(i, j) > 0 Then
temp(i, j) = 1
Else
temp(i, j) = 0
End If
Next j
Next i
Else
If temp.Interior.ColorIndex > 0 Then
temp = 1
Else
temp = 0
End If
End If
couleur = temp
End Function
Pouvez-vous m'aider?
Dernière édition: