Option Explicit
Sub test()
Dim cycle, I&
cycle = Array("haut", "droite", "bas", "gauche", "droite", "haut", "bas", "haut", "droite", "bas", "gauche")
For I = 0 To UBound(cycle)
Application.Wait Now + 0.00001
les_roue_du_camion_tourne_et_tourne CStr(cycle(I))
Next
Range("A1:I9").Clear
End Sub
Sub les_roue_du_camion_tourne_et_tourne(Optional triangle As String = "haut")
Dim p As Range, cel1 As Range, cel2 As Range, K&
Set p = Range("A1:I9")
With p
.Interior.Color = xlNone
.ColumnWidth = 3: .RowHeight = Range("A1").Width
For K = 1 To 9
Set cel1 = p(K, K)
Set cel2 = p(K, 10 - K)
cel1.Interior.Color = RGB(255, 0, 0)
cel2.Interior.Color = RGB(255, 0, 0)
If triangle = "bas" Then
If K > 5 Then
cel2.Offset(, 1).Resize(10 - K, 1).Interior.Color = RGB(0, 0, 255)
cel1.Offset(, -1).Resize(10 - K, 1).Interior.Color = RGB(0, 0, 255)
End If
ElseIf triangle = "haut" Then
If K < 5 Then cel1.Offset(, 1).Resize(1, 9 - (K * 2)).Interior.Color = RGB(0, 0, 255)
ElseIf triangle = "gauche" Then
If K < 5 Then cel1.Offset(1).Resize(9 - (K * 2)).Interior.Color = RGB(0, 0, 255)
ElseIf triangle = "droite" Then
If cel1.Column > 5 And cel1.Column < 9 Then cel1.Offset(, 1).Resize(, 9 - K).Interior.Color = RGB(0, 0, 255)
If cel2.Column >= 5 And cel2.Column < 9 Then cel2.Offset(, 1).Resize(, 10 - cel2.Column - 1).Interior.Color = RGB(0, 0, 255)
End If
Next
End With
End Sub