Sub Macro1()
Dim I As Byte 'déclare la variable I (Incrément)
Dim R As Range 'déclare la variable R (Recherche)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
'si le nombre de valeurs dans la plage E10:P10 est égal à 12, sort de la procédure
If Application.WorksheetFunction.CountA(Range("E10:P10")) = 12 Then Exit Sub
For I = 1 To 24 'boucle de 1 à 24
Set R = Range("E8:P8").Find(I, , xlValues, xlWhole) 'définit la recherche R (recherche I dans la plage E8:P8)
If R Is Nothing Then 'si aucune occurrence n'est trouvée
'définit la cellule des destination DEST (E10 si E10 est vide, sinon, la première cellule vide de la plage E10:P10)
Set DEST = IIf(Range("E10").Value = "", Range("E10"), Cells(10, 17).End(xlToLeft).Offset(0, 1))
DEST.Value = I 'renvoie I dans DEST
End If 'fin de la condition
Next I 'prochaine valeur de la boucle
End Sub