Bonjour à tous du forum,
on a jouté la fonction ci-dessous dans module,
Option Explicit
Function nb_inter(plage As Range) As Long
Dim Cel As Range, nb As Long
Application.Volatile
nb = 0
For Each Cel In plage
If Cel.Interior.ColorIndex <> xlNone Then nb = nb + 1
Next
nb_inter = nb
End Function
et la procédure ci-dessous dans la feuil5 de VBA :
'Pour que la mise à jour des fonctions soit automatique lorsque l'on modifie la couleur
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [B5:K26]) Is Nothing Then
If Not IsEmpty(celluleAvant) Then
If Not Intersect(Range(celluleAvant), [A1:K26]) Is Nothing Then Calculate
End If
celluleAvant = Target.Address
If Not Intersect(Target, [B5:K26]) Is Nothing Then
If Application.WorksheetFunction.Max([B29:K29]) <> 0 Then
Message1 = _
MsgBox("trop de personnes en congé, sont absentes pour certains jours !" + (CH13) + (CH13), vbExclamation, _
" Limite dépassée de demande de congé par jour")
End If
End If
End If
End Sub
Jusque là tout fonctionne, les couleurs de fond sont calculés directement, mise à jour,
mais dès qu'on veut changer le format de la plage de données
de B5:K26, p.ex modifier les bordures ou aligner le texte à droite ou ajouter un commentaire,
un grand bug, Excell même se ferme,
peut-être vous avez des astuces pour changer ceci,
ci-joint fichier explicite,