Private Sub Worksheet_Change(ByVal Target As Range)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim nb As Byte 'déclare la variable nb (NomBre)
Set pl = Range("B7:F7") 'définit la plage pl
'si le changement à lieu ailleurs qie dans la plage pl, sort de la procédure
If Application.Intersect(pl, Target) Is Nothing Then Exit Sub
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
If cel.Value = "" Then 'condition : si la cellule est vide
Range("H7").Value = "" 'efface le contenu de la cellule H7
Exit Sub 'sort de la procédure
End If 'fin de la condition
'si le reste de la division par 2 est différent de 0 (si la valeur de la cellule cel est impaure)
'incrément nb de 1
If cel.Value Mod 2 <> 0 Then nb = nb + 1
Next 'prochaine cellule de la boucle
Range("H7").Value = nb 'place la valeur nb en H7
End Sub