Colorier barre de progression

Bonjour, J'ai un problème simple a priori mais je n'arrive pas (plus, ça s'oublie vite le VBA ...) à colorier des cellules en fonction de la valeur temporelle d'une autre cellule.

En gros j'aimerais faire une barred eprogression et colorier toutes les 5 minutes une cellule.

Par exemple j'ai 20 cellules à colorier de la cellule sur une tâche qui va durer 100 minutes (100%).

Je sais qu'il faut jouer avec la fonction VBA TimeValue("hh:mm:ss") et avec une boucle mais je n'arrive pas à le formaliser... pourriez vous m'aider svp ?

Sinon je partirai sur un truc du genre, pour mon exemple ma barre de progression s'étale de la colonne C à V (20 colonnes pour 20 cellules) et ma cellule qui porte le chronomètre est définie en C1 :

If Range("C1") > TimeValue("00:05:00") Then
   Range("C3").Interior.Color = RGB(56, 66, 133)
End If

'2
If Range("C1") > TimeValue("00:10:00") Then
   Range("D3").Interior.Color = RGB(56, 66, 133)
End If
'3
If Range("C1") > TimeValue("00:15:00") Then
   Range("E3").Interior.Color = RGB(56, 66, 133)
End If
'4
If Range("C1") > TimeValue("00:20:00") Then
   Range("F3").Interior.Color = RGB(56, 66, 133)
End If

Etc.....

Mais ça m'ennuie de ne pas optimiser ce code à l'aide d'une boucle...

Merci d'avance !

Bonjour,

Je procèderais plutôt ainsi :

Dim t

Sub Progression()
    Static n As Integer
    n = n + 1
    Worksheets("Feuil1").Range("C1:V1").Cells(1, n).Interior.Color = vbGreen
    If n < 20 Then Application.OnTime t + TimeSerial(0, 5 * (n + 1), 0), "Progression"
End Sub

Sub Lancement()
    t = Now
    Application.OnTime t + TimeValue("00:05:00"), "Progression"
End Sub

Le processus est lancé à partir de la procédure Lancement...

Super, merci beaucoup...!

Rechercher des sujets similaires à "colorier barre progression"