Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/01/2012, 09h31   #1
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 0
Points : 0
Par défaut encore heures a calculer

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)
et j'aimerai que l'on me l'explique en détail

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
Fichiers attachés
Type de fichier : xls pointage ok LE BON.xls (20,5 Ko, 5 affichages)
mc3199 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 14h05   #2
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 700
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 700
Points : 1 460
Points : 1 460
Bonjour,

Citation:
=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)
et j'aimerai que l'on me l'explique en détail
D’abord une explication de la partie de formule
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)
1 – Fonction CHERCHE
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:
On m’a donné cette formule et j'aimerais que l'on me l'explique (la formule de la colonne D42, D44) et donc si je change les heures du D41 en 135 h cela le prend en compte ?
La cellule D40 contient un nombre d’heures de référence (130h00).
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:
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 tu veux changer le nombre d’heures de référence (100h00), tu dois appliquer la même règle.
Tu inscris la formule =100/24 et tu appliques le format personnalisé [[h]"h"mm
Citation:
j'ai modifié aussi les cellules de la colonne D, cela ne vas pas modifier les formules ?
Tu auras bien compris que si tu modifies le contenu des cellules de la colonne D, tu modifies le résultat.
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.
Fichiers attachés
Type de fichier : xls Copie de pointage.xls (34,0 Ko, 2 affichages)
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/01/2012, 14h41   #3
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 225
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 225
Points : 2 025
Points : 2 025
Bonjour,
En adaptant les formats des cellules on peut simplifier
La formule devient alors
Code :
=SI(B8="REPOS";0;C8-B8)
Voyez dans le fichier adapté
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/01/2012, 14h56   #4
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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.
Fichiers attachés
Type de fichier : xls pointage exemple2.xls (32,5 Ko, 5 affichages)
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 16h22   #5
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 0
Points : 0
Par défaut heures

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
mc3199 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 17h24   #6
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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.
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 17h52   #7
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 0
Points : 0
Par défaut heures

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
Fichiers attachés
Type de fichier : xls pointage ok LE BON.xls (29,0 Ko, 4 affichages)
mc3199 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 18h13   #8
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Re.

Manque de rigueur de ma part sur le test reconnaissant le nom de l'employé.
Correction à mettre en feuil1 B2:
Code :
=INDEX(ListEmployeHeureMax;EQUIV(Feuil1!B1;ListEmployé;0))
Explication : par défaut le type de recherche de la fonction EQUIV() est :
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.
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 19h54   #9
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 0
Points : 0
Par défaut heures

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
mc3199 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 20h09   #10
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Encore un oubli de ma part.
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 : =MAX(0;D39-"130:00")
Cellule D44 : =MAX(0;"130:00"-D39)
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 22h03   #11
Invité de passage
 
Inscription : février 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 7
Points : 0
Points : 0
Par défaut heures

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
mc3199 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2012, 22h18   #12
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
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.
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h34.


 
 
 
 
Partenaires

Hébergement Web