|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 7 ![]() |
slt a vous tous
j'ai une petite entreprise (ma petite entreprise la la la ....)) heu pardon...... donc j'ai 3 employés qui me font des heures, donc j'ai fait un tableau qui les calcules mais je voudrais que chaque tableau soit personnelles par employées donc employé 1 = 130 h par maxi donc employé 2 = 135 h par maxi donc employé 3 = 100 h par maxi etc ont ma donné cette formule et j'aimerais que e l'on me l'explique (la formule de la colonne D42, D44)et donc si je change les heures du D 41 en 135 h cela le prend en compte ? pour mon tableau par exemple pour la ligne 35 colonne D vous ne connaissez pas une formule plus simple que celle la Code :
=SI(B35="REPOS";"0h00";((STXT(C35;1;CHERCHE("h";C3 5;1)-1)*60-STXT(B35;1;CHERCHE("h";B35;1)-1)*60+(DROITE(C35;2)*1-DROITE(B35;2)*1))/60)/24) j'ai modifier aussi les cellules de la colonne D, cela ne vas pas modifier les formules ? oui je cherche la complication mais c'est plus claire pour mes employés et cela ne les 'trouble' pas sur mon tableau quand je veux changer le total d'heures en D 41 par exemple 100 il inscrit 2400 ? que dois-je faire pour que cela reste 100 et que les calcule le prennent en compte ? si vous pouvez vérifier si tout va bien merci a vous tous le moucheron |
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Citation:
Code :
((STXT(C35;1;CHERCHE("h";C35;1)-1)*60-STXT(B35;1;CHERCHE("h";B35;1)-1)*60+(DROITE(C35;2)*1-DROITE(B35;2)*1))/60)/24) CHERCHE("h";C35;1) recherche le caractère "h" dans la chaîne de texte contenue par la cellule C35 et renvoie le numéro de sa position. Donc, CHERCHE("h";"15h00";1) renvoie 3 puisque le caractère "h" est en 3eme position dans la chaîne de texte "15h00". 2 – Fonction STXT La fonction STXT renvoie un nombre donné de caractères extraits d'une chaîne de texte à partir de la position spécifiée, en fonction du nombre de caractères spécifiés. Par exemple, dans la formule =STXT("15h00";1;2) le n° de départ est 1 et le nombre de caractères est 2. La fonction renvoie 2 caractères du texte "15h00" à partir de la position 1. Elle renvoie donc "15" La formule =STXT(C35;1;CHERCHE("h";C35;1)-1) combine les 2 formules précédentes. Elle se traduit par =STXT(C35;1;2) soit =STXT("15h00";1;2) et renvoie "15". De même, la formule STXT(B35;1;CHERCHE("h";B35;1)-1) renvoie "8". Cette formule représente donc le nombre d’heures. 3 – Fonction DROITE DROITE(C35;2) renvoie les 2 derniers caractères la chaîne de texte contenue par la cellule C35 (les 2 caractères à droite). Ainsi, DROITE("15h30";2) renvoie "30". De même, la formule DROITE(B35;2), soit DROITE("8h00";;2) renvoie "00". Cette formule représente donc le nombre de minutes. On peut maintenant traduire la formule combinée (STXT(C35;1;CHERCHE("h";C35;1)-1)*60-STXT(B35;1;CHERCHE("h";B35;1)-1)*60+(DROITE(C35;2)*1-DROITE(B35;2)*1))/60)/24 Elle devient ("15"*60 – "8"*60 + ("30"*1 - "00"*1))/60/24 = 0,3125 Ce calcul permet de définir le nombre d’heures entre départ et arrivée. Remarque : En fait, on calcule cette durée en nombre de jours car Excel stocke les heures sous forme de fractions décimales de jour. Le format personnalisé [h]"h"mm permet d’obtenir l’affichage 7h30. 4 – La formule initiale devient =SI(B35="REPOS";"0h00";"07h30") Si le contenu de la cellule B35 est "REPOS" alors inscrire "0h00", sinon inscrire "7h30" Citation:
Comme indiqué précédemment, ce nombre d’heures est stocké sous forme de fraction décimale de jour, soit 130/24 = 5,416666667 Le format personnalisé [h]"h"mm permet d’obtenir l’affichage 130h00. Citation:
Tu inscris la formule =100/24 et tu appliques le format personnalisé [[h]"h"mm Citation:
Les seules données saisies sont en colonnes A, B et C (et éventuellement la référence horaire en D40). Je joins ton fichier exemple avec une adaptation pour les 3 employés. Cordialement. |
||||
|
|
10
|
|
|
#3 |
|
Membre Expert
![]() Robert JAMINRetraité Inscription : juillet 2009 Messages : 1 225 ![]() |
Bonjour,
En adaptant les formats des cellules on peut simplifier La formule devient alors Voyez dans le fichier adapté
__________________
Cordialement. RJ |
|
|
10
|
|
|
#4 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonjour,
Effectivement on peut simplifer 2 ou 3 p'tites choses : - gérer tous les employés comme présenté par gFZT82 - la formule comme présenté par Rjamin à partir d'un format d'heure hh:mm au lieu de hhHmm à la saisie; - utiliser la validation des données pour afficher des listes pour les heures (incluant Repos) - calculer un calendrier en prenant en compte le nombre de jour variant d'un mois à l'autre, - une aide visuelle pour repérer les week-end. - personnaliser les fiches pour faire apparaître le nom de l'employé, et déterminer le nombre d'heure .. - inverser Arrivé / Départ (ils arrivent avant qu'il partent ou bien ?)... Pour information les listes sont gérées dans la feuille 2. Il suffit de modifier la liste (en ajoutant des valeurs) et en redimensionnant la liste (Menu insertion -> définir) pour que les listes et calcul Feuilles 1 se mettent à jour. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 7 ![]() |
merci a vous tous
pour ces explication bien précises je voudrais savoir pour le tableau de bluemonkey les heures d'arrivé de mes employé sont fluctuante aux (5 minutes prêt) et pas fixe d’après la feuille 2 cela peu bouger mais pas aussi peu ? c'est un super tableau que tu as fait vraiment chapeau bas merci a te lire de bouveau |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Re.
L'intervalle de temps est calculé en Feuil2, D1. Il suffit de : - changer l'intervalle de temps actuellement (ici 15 minutes avec "0:15") dans cette cellule pour avoir : - copier cette cellule D1 vers la droite (sur d'avantage de cellule qu'avec un intervalle de 15min.) - redéfinir le plage nommée ListHeure en sélectionnant toutes les cellules ligne 1 de "Repos" à la dernière plage horaire, puis - faire Menu Insertion -> Noms -> Définir et taper ListHeure puis <OK>. Maintenant la résolution de sélection d'heure est passée à 5 min. Dans l'idéal, compte tenu du nombre de valeur, une fenêtre VBA serait plus adaptée. Mais ça demande d'avantage de travail.
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 7 ![]() |
slt a toi
mais quand je change le nombre d'h pour les employées sur la feuille 2 cela ne le prend pas en compte sur la feuille 1 ? merci pour tes explications elles sont superbes merci encore |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Re.
Correction à mettre en feuil1 B2: Code :
=INDEX(ListEmployeHeureMax;EQUIV(Feuil1!B1;ListEmployé;0)) 1 : la fonction EQUIV trouve la valeur la plus élevée qui est inférieure ou égale à celle de l'argument valeur_cherchée. La correction : 0 : trouve la première valeur exactement équivalente à celle de l'argument valeur_cherchée. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 7 ![]() |
et oui même les maitres font des erreurs ah ah ah
non c'est pas grave je me sert de ton tableau depuis midi et il est vraiment génial, mais pour l’employé "K" avec 100 h, la cellule D42, et D44 reste a 130 et donc je dois la modifier a la main, un oublie ? ou une erreur de ma part ? voila merci encore a toi pour ton travail et des supers explications je pense passer qlq nuits a les comprendre..... merci merci |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Mais j'avoue que n'ai pas parcouru toute les cellules à la recherche de constante magique insérée dans les formules. Après un peu de pratique, on apprend vite à s'en passer et du coup je ne pense plus à ces erreurs. Cellule D42 : Cellule D44 : |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 7 ![]() |
re slt
encore merci voila maintenant c'est super pour faire une fenêtre VBA cela sera pour plus tard..... encore merci a toi bye et bonne soirée |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Content de voir que ça fonctionne correctement maintenant
![]() Bonne soirée également. ________________________________________________ P.S : Pense à noter le sujet Résolu à l'aide du bouton <Résolu>. C'est utile à plusieurs chose : - les autres ne cherchent plus de solution à un problème corrigé. - les personnes qui cherchent une solution similaire peuvent regarder ici. (la/les réponses avec des +1 aide également à repérer le/les messages qui répond le mieux au problème). Ces opérations contribues au bon fonctionnement du forum. C'est pour ça quelles sont encouragées par le forum en te donnant des points pour les opérations que tu effectue. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com