Ca devient très lent.. Si je clique sur l'étoile ça prend beaucoup de temps(1 à 2 minutes)avant de mettre à jour la feuille QUART PAR AGENT.
je ne sais pas à quoi sert l'étoile ! vois avec celui qui a fait la macro
il faut ajouter une instruction demandant de suspendre le calcul ! ou au moins l'affichage !
la feuille heure ne modifie le nom des agents
en effet le fichier fourni ne donne aucune liaison !! je ne peux pas les deviner ... remets les liaisons comme à l'origine que je n'ai pas
Venons en à la feuille HEURES :
J'ai essayé de modifier la constitution des équipes : ça ne prend pas en compte les nouvelles agents introduites
la structure de la feuille a été modifiée !! les dates sont en lignes 3, 16, 29 ...
alors que le fichier précédent c'était 3, 17, 31 ...
donc patatrac (le pas était aussi figé dans la formule d'origine)
ne plus supprimer de lignes !! merci
Function nbHeures(qui As Range, quand As Range, code As Integer) As Variant
' code = 1 Jour, 2 Nuit
Application.Volatile
Dim l%, c%, i%, j%
Dim durees(1 To 4, 1 To 2) As Variant
durees(1, 1) = 7 / 24
durees(2, 1) = 7 / 24
durees(3, 1) = 6 / 24
durees(4, 1) = 4 / 24
durees(1, 2) = 6 / 24
durees(2, 2) = 0 / 24
durees(3, 2) = 0 / 24
durees(4, 2) = 3 / 24
nbHeures = 0
With Sheets("QUART PAR AGENT")
ref = .Range("C3").Value ' date de début des quarts
l = Int((quand.Value - ref) / 7) * 13 + 6 ' ligne de départ de la matrice = 6, pas de 13
c = ((quand.Value - ref) Mod 7) * 4 + 3 ' colonne de départ de la matrice = 3, pas de 4
For i = l To l + 9 ' 10 agents
For j = c To c + 3 ' 4 horaires
If .Cells(i, 2) = qui.Value Then
If .Cells(i, j) = "X" Then nbHeures = nbHeures + durees(j - c + 1, code)
End If
Next
Next
End With
End Function