Private Sub Worksheet_Change(ByVal Target As Range)
Dim X, I, Z ' déclaration des variables
X = Range("A1").Value ' x = la valeur de A1
If X = "" Then
For Z = 1 To 249 ' Z = de 1 à 249
With Range("A1").Offset(0, Z).Interior
.ColorIndex = xlNone
End With
Next Z
End If
'efface la couleur de fond de toute la ligne
For Z = 1 To 249 ' Z = de 1 à 249
With Range("A1").Offset(0, Z).Interior
.ColorIndex = xlNone
End With
Next Z 'suivant
' colorise le nombre de cellules voulues
For I = 1 To X 'I = de 1 à la valeur de X
With Range("A1").Offset(0, I).Interior ' pour les cellules adjacentes à A1 de la première à la I éme pour le fond
.ColorIndex = 5 'l'index de couleur est 5
End With 'fin de pour
Next I 'suivant
End Sub