Bonjour à tous,
J'ai créé (grâce à votre aide) une fonction dans un module sur VBA que j'ai intégré dans mes cellules (=NbreCellulesCouleurParSite(plage;B6;$E$5))
Sauf que depuis que j'ai plusieurs onglets avec chacun leur tableau de suivi, si je vais d un onglet à l autre il mets à zéro les autres.
Est ce que vous sauriez pourquoi?
Function Couleur(Cellule As Range)
Application.Volatile
Couleur = Cellule.Interior.ColorIndex
End Function
Function NbreCellulesCouleur(Plage As Range, Couleur As Byte) As Long
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée
'Plage: plage de cellules à inspecter
'Couleur: valeur de la couleur cherchée
Application.Volatile
Dim Cellule As Range
For Each Cellule In Plage
If Cellule.Interior.ColorIndex = Couleur And Not IsEmpty(Cellule) Then
NbreCellulesCouleur = NbreCellulesCouleur + 1
End If
Next Cellule
End Function
Function NbreCellulesCouleurParSite(Plage As Range, CouleurCellule As Range, Site As String)
Application.Volatile
Dim Cellule As Range, Couleur, NbreCellulesCouleur
Couleur = CouleurCellule.Interior.Color
Colonne = Plage.Column
For Each Cellule In Plage
If Cellule.Interior.Color = Couleur And Cells(Cellule.Row, Colonne) = Site Then
NbreCellulesCouleur = NbreCellulesCouleur + 1
End If
Next Cellule
NbreCellulesCouleurParSite = NbreCellulesCouleur
End Function
Merci
Bonne journée.
J'ai créé (grâce à votre aide) une fonction dans un module sur VBA que j'ai intégré dans mes cellules (=NbreCellulesCouleurParSite(plage;B6;$E$5))
Sauf que depuis que j'ai plusieurs onglets avec chacun leur tableau de suivi, si je vais d un onglet à l autre il mets à zéro les autres.
Est ce que vous sauriez pourquoi?
Function Couleur(Cellule As Range)
Application.Volatile
Couleur = Cellule.Interior.ColorIndex
End Function
Function NbreCellulesCouleur(Plage As Range, Couleur As Byte) As Long
'Compter le nombre de cellules d'une couleur donnée dans une plage donnée
'Plage: plage de cellules à inspecter
'Couleur: valeur de la couleur cherchée
Application.Volatile
Dim Cellule As Range
For Each Cellule In Plage
If Cellule.Interior.ColorIndex = Couleur And Not IsEmpty(Cellule) Then
NbreCellulesCouleur = NbreCellulesCouleur + 1
End If
Next Cellule
End Function
Function NbreCellulesCouleurParSite(Plage As Range, CouleurCellule As Range, Site As String)
Application.Volatile
Dim Cellule As Range, Couleur, NbreCellulesCouleur
Couleur = CouleurCellule.Interior.Color
Colonne = Plage.Column
For Each Cellule In Plage
If Cellule.Interior.Color = Couleur And Cells(Cellule.Row, Colonne) = Site Then
NbreCellulesCouleur = NbreCellulesCouleur + 1
End If
Next Cellule
NbreCellulesCouleurParSite = NbreCellulesCouleur
End Function
Merci
Bonne journée.