XL 2013 Comptabiliser des durées à partir de cellulles "1/4h"

Schmoute

XLDnaute Nouveau
Bonjour à tous,

J'ai longtemps été dépanné sur des petits problèmes sur ce forum, mais j'arrive ce jour avec une question qui, si elle est résolue, m'évitera de passer trop de temps sur mon fichier.

C'est un souci de planning, j'ai plusieurs collaborateurs pour lesquels j'ai besoin de savoir leur quotité horaire journalière, sauf que leur planning est représenté par des cellules colorées de 15 minutes en minutes. Je cherche à avoir un résultat du type 4 cellules colorées de 8h00 à 09h00 = 1 heures de quotité horaire.

Je joins à ma question le fichier en question.

D'avance, un immense merci au contributeur qui se penchera sur la question.

Je suite à l'écoute de tous pour une question éventuelle sur mon problème.

PS : je suis une buse totale en VBA, et je crois bien que le problème se résoudra ainsi.
 

Pièces jointes

  • Exemple.xlsx
    14.2 KB · Affichages: 24

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Je cherche à avoir un résultat du type 4 cellules colorées de 8h00 à 09h00 = 1 heures de quotité horaire.
mettre un "x" dans chaque cellule supposée travaillée
utiliser une MEFC pour mettre en couleur les cellules contenant un "x"
utiliser la formule :
=NB.SI(B5:AS5;"x")*"0:15"
pour totaliser les durées
upload_2017-6-12_15-10-21.png
 

vgendron

XLDnaute Barbatruc
Hello
Ci jointe une solution avec fonction personalisée

suffit d'écrire en bout de ligne =quotité()
de la meme manière que tu écrirais = somme(A1:A5)
le code associé est dans un module standard
 

Pièces jointes

  • Qutotité Heure.xlsm
    23.3 KB · Affichages: 22

Schmoute

XLDnaute Nouveau
Si je commence à 8h30 et que je finis à 12h30, alors je fais 4h. L'après-midi, si je commence à 13h30 et que je finis à 18h45, je fais 5h15, soit une journée totale à 9h15. Et pourtant selon la ligne sur laquelle tu as mis la formule, j'ai 9h30 en quotité horaire... Et mes croix sont bien positionnées, d’où l'idée de retirer 15 minutes, comme quand on calcule le nombre de jours entre deux dates, on ajoute 1 au résultat je crois.
 

vgendron

XLDnaute Barbatruc
Le souci vient d'une "ambiguité" entre l'info "Début de travail" et quart d'heure travaillé
en fait. tu mixes les deux
ex:
une croix à 08h30: signale le DEBUT d'un quart d'heure travaillé de 08h30 à 8h45
mais. ta croix (ou couleur rouge) à 12h30 signifie la FIN d'un quart d'heure travaillé.. celui de 12h15 à 12h30 --> donc la. une croix de trop
idem pour l'après midi

Dans mon code. j'ai justement enlevé 2 quarts d'heure. MAIS j'ai aussi précisé que cela suppose une coupure le midi..
sinon. il y aura décalage
 
Dernière édition:

Schmoute

XLDnaute Nouveau
Hello
Ci jointe une solution avec fonction personalisée

suffit d'écrire en bout de ligne =quotité()
de la meme manière que tu écrirais = somme(A1:A5)
le code associé est dans un module standard


J'ai avancé ma saisie, mais j'ai bizarrement un problème quand je ne saisis que des demis-journée... Que dois-je modifier dans le code pour palier à cela ? Ca doit être au niveau du "Nbquart-2" si j'ai bien suivi la chose....

Public Function Quotité()
Application.Volatile

ligne = Parent.Caller.Row 'récupère le numéro de ligne où est inscrite la formule

Set zone = Range("B" & ligne & ":BA" & ligne) 'récupère la zone colonne B à BA

NbQuart = 0 'initialise le nombre de quart d'heure
For Each quart In zone
If quart.Interior.Color = 255 Then 'si le quart d'heure est coloré en ROUGE
NbQuart = NbQuart + 1
End If
Next quart

NbQuart = NbQuart - 2 'pour compenser les créneaux de départ considérés comme des créneaux DEJA travaillés --> suppose une coupure obligatoire au milieu

NbHeure = Int(NbQuart / 4) 'calcul du nombre d'heure
NbMinute = (NbQuart - NbHeure * 4) * 15 'calcul du nombre de minutes
Quotité = Format(TimeValue("" & NbHeure & ":" & NbMinute & ":00"), "hh:mm") 'on retourne le résultat au format heure

End Function
 

vgendron

XLDnaute Barbatruc
En fait. il faut revoir l'interprétation des créneaux horaires..
les heures indiquées dans ta feuille doivent etre considérées comme le Debut d'un quart d'heure travaillé.
et UNIQUEMENT un début;
donc. si tu travailles de 08h à 12h.. tu dois colorer 08h / :15 / :30 / et :45 ce qui te fais 4 cases
en travaillant un peu la présentation de ton tableau. il est très facile d'identifier visuellement les crénaux horaires..

en plus. je t'ai ajouté un bout de code qui permet de colorer ou décolorer les créneaux un par un..
fais un double clic quelque part et tu vas voir..
 

Pièces jointes

  • Qutotité Heure.xlsm
    26 KB · Affichages: 20

Schmoute

XLDnaute Nouveau
Bonjour,

La nuit est passée, et j'ai pas bien compris...

Merci pour ta proposition de changement vgendron, mais je suis perdu. Je préfère te joindre le fichier sur lequel je travaille car j'ai modifié la plage du code VBA, et tu pourras constater le souci directement au niveau du mardi :
A fait 8h30-12h30 / 13h30-18h45, soit 9h15 qui sont bien calculés dans le fichier.
M et N font respectivement 8h45-12h30 et 8h15-10h00 soit 3h45 et 1h45 or le fichier me zappe 1/4 d'heure.

J'ai bien compris que le souci devait venir de la pause suggérée qui enlevait 2 1/4 d'heure (enfin si j'ai bien compris :)...

Quelque chose peut régler ce problème sans forcément changer l'aspect de mon fichier et interprétation des créneaux horaires ?

Merci !
 

Pièces jointes

  • Exemple.xlsm
    27.7 KB · Affichages: 23

vgendron

XLDnaute Barbatruc
hello
la difficulté est de savoir si il y a une ou plusieur périodes (demi journées) de saisies.
bref.. il faut detecter si'il y a une pause le mid pour ne retirer QUE le bon nombre de quart d'heure..
Je vois ca cet après midi et je reviens vers toi.
 

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou