faire une macro sur des horaires

C

Céline

Guest
Bonjour,

Alors voilà mon soucis (et probablement le dernier pour cette serie de tab de bord puisque je touche le bout !!!youpi)

Donc j'ai un tableau avec X colonnes, représentant des secteurs.
En ligne j'ai les jours de la semaine, mais pour chaque jour de la semaine, on a des lignes avec comme info le camion chargé de la collecte, l'heure de fin de tournée que l'on rentre sous le format hh:mm), et le tonnage. En gros pour chaque jour j'ai des lignes d'infos.
Je cherche à travailler sur les heures fin de tournée. Cette info se situe toutes les 8 lignes( ex: ligne 9 pr lundi, ligne 17 pr mardi, ligne 25 pr mercredi,etc...)
En bas de mon tableau, j'ai l'horaire moyen de fin de la collecte pr le secteur donné. Ce que je veux c'est que si l'horaire de fin de tournée pr un jour donnée est supérieur à heure moyen + 30 min, alors la case 'en faute' se colore en rouge.

J'ai tenté de prendre des brides de différente macro et conseil du forum et autre site mais c'est pas glorieux.
Pouvez m'aider à faire cette macro ?
Comment fait-on pour indiquer que l'on veut que ce soit supérieur à heure moyen + 30 min (ça marche pas quand je tente des trucs)
Comment fait-on pour que ça marche tout simplement ?
merci d'avance
 
C

Céline

Guest
Afin de mieux voir, je joint un copie de mon classeur pour mieux se rendre compte de mon probleme.

Par exemple dans la premiere colonne (sivam, Om1), les cellules qui doivent se colorer sont : d9; d17; d25; d33; d41; d49; d51.
La cellule D69 est la moyenne.
Je cherche donc à colorer en rouge les cases citées ci dessus si leur valeur est supérieur à D69 + 30 min.

La macro que j'ai essayé est :

' Definition des termes
Dim rg As Range

'Boucle des colonnes
For colonne = 4 To 20 Step 1

'Boucle des lignes
For ligne = 9 To 57 Step 8

'calcul du delta
delta = ligne * 8

For Each rg In Range(Cells(9 + delta, 4), Cells(9 + delta, 20))

'test si valeur de retour est supérieure a 30min à l'horaire moyen
If rg.Value > Range('D69').Value Then rg.Font.ColorIndex = 3

Next rg

Next ligne
Next colonne

'
End Sub

Elle n'est pas finie car de toute manière ça ne marche pas !
En plus je n'ai mis pour l'instant que > à D69 car je n'ai pas trouvé comment indiqué D69 + 30 min.Mais même sous sa forme actuelle, rien ne se passe !
Où est l'erreur ? je tourne en rond de pas savoir (p.s : je débute en VBA)
 
B

bebere

Guest
bonjour

0.020833833 =00:30
Range('D69').Value =0,166666667 ,formaté=4:00

Public Sub Couleur()

Dim C As Byte
Dim Cellule As Range, Cel(6) As String
Cel(0) = 'D9': Cel(1) = 'D17': Cel(2) = 'D25': Cel(3) = 'D33'
Cel(4) = 'D41': Cel(5) = 'D49': Cel(6) = 'D51'
For C = 0 To 6
Set Cellule = Range(Cel(C))
If Cellule.Value > Range('D69').Value + 0.020833833 Then
Cellule.Font.ColorIndex = 3
End If
Next C

End Sub

au revoir
 

Discussions similaires

Statistiques des forums

Discussions
312 672
Messages
2 090 772
Membres
104 662
dernier inscrit
Hurve