Excell - calcul d'heures après minuit

Résolu/Fermé
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013 - 22 avril 2011 à 10:28
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013 - 26 avril 2011 à 13:52
Bonjour,

J'aimerais calculer le nombre d'heure travaillées en soustrayant l'heure de fin à l'heure de départ.
Tout fonctionne très bien temps que je ne dépasse pas minuit. Après minuit, l'heure de fin redevient inférieure à l'heure de début malgré que l'on soit au jour d'après.
Comment faire pour qu'il comprenne que l'on est au jour d'après sans devoir entrer le jour précis dans chaque case?
Si il n'y à pas moyen, serait-ce possible d'utiliser la date que j'entre dans une autre case?

merci d'avance :)

A voir également:

10 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 22/04/2011 à 10:39
Salut,

exemple en B2 heure de fin après minuit et en A2 heure de début avant minuit

=MOD(B2-A2;1)

ensuite tu incrémentes vers le bas.

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
13
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
22 avril 2011 à 14:44
Ca fonctionne :)

Mais il y a un mais. lorsque je veux soustraire un temps de pause en plus, je fais
=MOD(G41-F41;1)-H41
et cela fonctionne très bien sauf quand mon temps de pause = 0 :(
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
22 avril 2011 à 14:56
Bonjour
c'est anormal,la formule fonctionne, y compris avec -0!
pouvez vous nous dire exactement ce que vous avez en F,G,H?
ou mieux,mettre une exemple de votre problème sur:
http://www.cijoint.fr
et revenir afficher ici le lien donné par le site
crdlmnt
1
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
23 avril 2011 à 18:04
En effet, ce n'est pas lorsque je met le temps de pause à zéro que ca ne va pas mais lorsque le temps de fin = minuit! ce qui affiche 0h00 vu que j'ai mis format heure. j'ai beau mettre 24:00 pour qu'il comprenne que c'est minuit du jour d'après et non du matin même, il me le transforme en 0:00 et cela ne fonctionne pas.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 24/04/2011 à 08:17
bonjour
je ne vois toujours pas le problème:
Excel ne prendra pas 24:00 en format heure standard, mais je ne vois toujours pas le problème:

si par exemple avec en B1 la formule:
=MOD(B1-A1;1)
en entrant 3:00 en A1 et 0:00 en B1 vous obtenez bien 21:00 en résultat
en entrant 0:00 en A1 et 12:00 en B1 vous obtenez bien 12:00 en résultat

maintenant si c'est une question d'affichage qui vous choque,
formatez vos cellules en:
format de cellule / Personnalisé / et écrivez dans la fenêtre type:
[hh]:mm
avec hh entre crochets.ainsi le 24:00 sera affiché
crdlmnt
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
23 avril 2011 à 18:27
Vous avez totalement raison, c'était moi qui avait mal introduit l'heure de début, il l'avait reconnu comme test et non comme heure..

Merci beaucoup!

Sinon comme vous m'avez l'air doué, pouvez-vous me dire comme faire pour que lorsque je sélectionne une donnée dans une liste déroulante, il me remplisse cette case mais également une seconde case qui lui serait associée.
je m'explique.. lorsque je sélectionne une employeur dans un liste déroulante, je voudrais que quelques cases plus loin le salaire correspondant se mette dans une case :)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 23/04/2011 à 18:45
Re
faites un tableau hors champ ou sur une autre feuille avec pour l'exemple à adapter:

colonne X de X2 à X20 le nom des employeurs qui servira de base à la liste déroulante
en ligne avec les noms de Y2 à Y20,les salaires correspondants
en colonne A à partir de A1 jusqu'à nécessaire:
validation selon la liste
en B2, formule à tirer vers le bas:
=SI(ESTVIDE(A2;0;RECHERCHEV(A2;$X$2:$Y$20;2;0))
qui vous donnera la valeur de la colonne Y correspondante au nom en A
attention au blocage par $$ du champ XY avant de tirer la formule

si vous avez ce tableau de référence sur une autre feuille:

1°) nommer la liste de X2 à X20 pour autoriser l'implantation de la validation entre deux feuilles
nommer un champ dépend de votre excel:
sélectionnez le champ et:
sur excel avant 2007 > Barre d'outil insertion nom
à partir de 2007>ruban onglet formule et définir un nom
entrer un nom, par exemple: LISTE

2°) sélectionnez le champ de validation sur l'autre feuille:
données / Validation / Liste et dans la fenêtre:
=LISTE (soit le nom que vous avez choisi)

3°) pour la formule en B2:
=SI(ESTVIDE(A2;0;RECHERCHEV(A2;'nom de la feuille'!$X$2:$Y$20;2;0))
le nom de la feuille étant placé entre apostrophe et suivi du point d'exclamation

bon courage

crdlmnt
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
23 avril 2011 à 19:01
Génial, je teste ça tout de suite mais ça m'a l'air "logique"

merci pour le "truc" de l'autre feuille car je n'arrivait pas à en insérer les données sans les nommer ;)

Grand grand merci!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 24/04/2011 à 08:09
Bonjour
une solution pour avoir un champ variable selon le nombre de données dans une liste:
pour l'exemple à adapter:

pour nommer un champ de A1 àExxx

sélectionnez A1:X1 (ou peu importe en fait, c'est la formule qui fait le champ!)
nommer/ nom de la liste en haut
dans la fenêtre du bas, entrez la formule:
=INDIRECT("'nom feuille'!A1:X"&NBVAL($A:$A))
attention à tous les signes indispensables dans la fonction nom:
soit =INDIRECT parenthèse / guillemets / apostrophe/nom feuille/apostrophe/point d'exclamation/A1:X/Guillemets/Signe&/NBVAL.avec le blocage de colonne...

Le champ s'ajustera au nombre de automatiquement au nombre de valeurs entrées en colonne A, à condition qu'il n'y ait pas de blanc dans la liste, NBVAL comptant les valeurs dans la colonne A


si votre champ ne démarre pas sur la ligne 1et qu'il n'y a pas de valeur avant A3 rajouter le décalage de départ à NBVAL pour ressortir le N° de ligne de fin du champ:

ex:
=INDIRECT("'nom feuille'!A3:X"&NBVAL($A:$A)+2)


Bon courage
crdlmnt





Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
24 avril 2011 à 18:10
Ok mais mon but ultime est que lorsque je selectionne un employeur, plusieurs cases de remplissent.. Soit le salaire, le type de fonction etc. Dois-je adapter la formule a chaque colonne? Et chaque fois creer une liste avec un nom separe et chacune d'elle reprenant la premiere colonne commune a toutes?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 24/04/2011 à 18:25
Re

Si vous voulez éditer plusieurs valeurs de la même ligne à partir du nom dans la première colonne, ,il faut simplement modifier le 2 jste avant le 0 de la fin de la ,formule
RECHERCHE:
par exemple
=SI(ESTVIDE($A2);0;RECHERCHEV($A2;'nom de la feuille'!$X$2:$Y$20;3;0))
vous donnera la valeur de la 3° colonne du champ, ....;4;0) celle de la 4° etc...
mais bien entendu il faut que le champ X:Y inclut toutes les colonnes
par exemple:
en base de données,appelons la BASE,de ligne 1 à ligne 100:
colonne A: les noms
colonne B: les salaires
colonne C: info 1
colonne D: info 2
colonne E: info3

en feuille EDITION:
en colonne A un menu déroulant basé sur colonne A de BASE
en colonne B
=SI(ESTVIDE($A1);"";RECHERCHEV($A1;'BASE'!$A$1:$E$100;2;0))
vous renverra la valeur salaire
=SI(ESTVIDE($A1);"";RECHERCHEV($A1;'BASE'!$A$1:$E$100;3;0))
vous renverra info1
etc... avec 4 pour valeur info 2 et 5 pour valeur info E

vous povez aussi remplacer cette valeur (é ou 3 ou 4)
par le code: COLONNE()
qui renvoi le N° d'ordre de la colonne dans la feuille
ainsi COLONNE() en colonne B vaut 2
ainsi vous pouvez placer la formule en B1 et la tirer vers la droite jusqu'à E1, la valeur N° se placera automatiquement
enfin, si vos N° (de feuille) des colonnes EDITION ne correspondent pas au N° de colonne (du champ) de données à ressortir, vous pouvez inclure une correction:
COLONNE()-1 ou +1 etc...

Si cela ne va pas , c'est que l'on se comprend mal, donc si vous pouvez mettre à disposition un modèle (avec des valeurs bidon si confidentiel) sur:
http://www.cijoint.fr
en revenant placer ici le lien donné par le site, on pourra regarder de plus près.

Crdlmnt





Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
24 avril 2011 à 19:40
Impeccable! merci :)

Je reproche juste à Excel de ne pas adapter la colonne dans la formule lorsque j'insère une colonne dans ma feuille de données.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
24 avril 2011 à 20:00
Pour régler ce problème:

si vous insérer une colonne dans le champ de données:

exemple à adapter:
remplacer l'adresse du champ dans la formule RECHERCHEV (soit A1:E100 dans mon dernier message) par:
INDIRECT("'Nom de feuille'!A1:"&ADRESSE(100;NBVAL(1:1))
cette formule définira un champ partant de A1 et se terminant sur la ligne 100 de la dernière colonne comportant un titre dans la ligne 1, à condition bien sur que toutes les colonnes du champ aient un titre en ligne 1, et ces colonnes seulement
je vous laisse par contre voir ce qui se passe dans la feuille d'édition avec la formule et le champ modifié lorsque vous insérer une colonne

Si vous voulez ajouter des lignes, voyez le message un peu plus haut ici:

https://forums.commentcamarche.net/forum/affich-21897279-excell-calcul-d-heures-apres-minuit#12

le principe de nommer est applicable aux deux (ligne ou colonne)

A noter que s'il s'agit seulement de rajouter des colonnes ou des lignes à la suite des existantes,il suffit de limiter l'adresse du champ à une limite le plus éloignée selon besoin

crdlmnt
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
24 avril 2011 à 21:19
Effectivement, j'ai choisi la solution d'augmenter les valeurs de champs et je rajouterai les colonne à la suite de la dernière.

Un autre problème survient encore..
J'ai remplacé dans votre formule =SI(ESTVIDE($C$7);0;RECHERCHEV($C$7;Données!$A$5:$Z$200;2;0)) le zéro par des guillemets, ce qui donne =SI(ESTVIDE($C$7);"";RECHERCHEV($C$7;Données!$A$5:$Z$200;2;0)) afin de ne rien avoir écrit dans cette cellule..

Mais lorsque j'exécute une fonction SI(ESTVIDE) dans une autre cellule se rapportant a celle définie plus haute, il ne me la considère pas comme vide malgré qu'il n'y a rien dedans.. (en effet il y a une formule dedans mais elle ne renvoit pas de valeur..)
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
24 avril 2011 à 22:17
J'ai rendu public l'accès à mon document sur Google Docs afin que vous puissiez le télécharger.

https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://docs.google.com/leaf?id%3D15mRRv8-3bbAM_u8ZviZgbpdgcfUW7ROyTXAnI0xJP4s%26authkey%3DCJztzMYM&followup=https://docs.google.com/leaf?id%3D15mRRv8-3bbAM_u8ZviZgbpdgcfUW7ROyTXAnI0xJP4s%26authkey%3DCJztzMYM

J'ai encore quelques questions.

y a-t-il une astuce pour insérer une ligne identique à celle de dessus/dessous afin de ne pas recopier toutes les formules... car quand je fais clic droit, insertion, il me copie la mise en forme de l'autre ligne qui n'est en général pas la bonne..

Ou encore (quand vous aurez vu le document) créer une sorte de formulaire qui me permettrait de rajouter un jour et qu'il le classe tout seul dans le mois approprié..

Je n'en demande pas trop?? je ne connais pas les limittes d'Excel ni celles de vos connaissances :$

Bonne soirée.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
25 avril 2011 à 07:46
Bonjour thebig...

Quelques réponses:

la fonction est vide:

la fonction ESTVIDE ne peut pas s'appliquer à une cellule contenant 0 ou une formule. Elle doit être comme la ,formule le demande, vide!
pour pallier à cela modifiez la condition d'entrée (qui ne sert qu'à éviter l'affichage de #N/A lorsque la formule ne trouve pas de réponse), remplacez:
=SI(ESTVIDE(C7) par
=SI(C7="";

Petite astuce: si vous ne voulez pas voir les 0 sur vos feuilles , aller dans:
barre d'outil / Option / Affichage/ et décochez:
"afficher les valeurs 0"


Une astuce pour insérer une ligne:

excel insère une ligne au format de la ligne au dessus, mais n'y intègre pas les formules,il faut passer par une macro si vous voulez les réintégrer

Rajouter un jour pour le classer tout seul..

C'est surement possible.. et plus simple que de réinsérer des lignes mais les images que vous transmettez ne sont pas à la hauteur de la question...elles sont quasi inexploitables, même avec de la bonne volonté

Mettez votre fichier_excel manipulable_ sur:
http://www.cijoint.fr
je vous dirais ce qui est possible

Les limites d'excel et de mes connaissances:

les limites de mes connaissances sont placées bien avant celles d'excel, mais on peut tenter de s'en tirer au premier aperçu de vu votre problème!

à vous lire, surtout avec un modèle exploitable

bien cordialement


0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
25 avril 2011 à 08:43
http://www.cijoint.fr/cjlink.php?file=cj201104/cij1TtCjXU.xlsx

merci :)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 25/04/2011 à 11:15
Re
http://www.cijoint.fr/cjlink.php?file=cj201104/cijhDfYIzr.xlsx

ci joint votre fichier revu par les interventions suivantes:

1°) toutes les formules qui sont dans des cellules utilisées ensuite pour des calculs ne peuvent pas être conditionnées avec un type "", car ceci est considéré par Excel comme du texte et le résultat devient #VALEUR
toutes les formules concernées ont été corrigées

2°) pour éviter l'affichage des 0, l'option d'afficher les valeurs nulles à été décochée
(logo microsoft en haut à gauche / Options excel / options avancées / afficher les options pour cette feuille)

3°) Les formules de calculs ont été allégées d'un nombre considérable de parenthèses inutiles (il n'est pas utile de mettre entre parenthèses des séries de calculs qui ne comportent que des multiplications ou divisions.

4°) la colonne R (O / N) a été formatée en conditionnel pour passer en bleu si la lettre et O en rose si elle est N

5°) une ligne de référence a été créée en ligne 1pour permettre l'intégration d'une ligne de formule entre les lignes du tableau.
Pour ce faire:
copier la ligne 1 complète ( sélectionnez dans la règle des N° à gauche)
clic droit sur le N° de la ligne à insérer et :"insérer les cellules copiées"
une fois insérée, taper enter pour stopper la copie
cette option peut être automatisée par macro, et engagée par exemple en tapant un X dans la colonne A au N° de ligne à intégrer.
Si vous souhaitez intégrer des valeurs figées dans les ligne créées, placer les aux endroits voulus en ligne 1

A vous lire pour complèment si besoin.

crdlmnt






Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
25 avril 2011 à 18:10
Voila, j'ai analysé tous vos changement (pour apprendre :) )
Intéressant la fonction formatage conditionnel :) J'ai mis des petits V et X en image lorsque l'action est vrai ou fausse...

Une dernière chose me dérange, comme vous avez masqué l'affichage des 0,

lorsque ma pause est egale a 0 h 00 ou mon heure de fin a minuit, la cellule n'est pas affichée.. y a-t-il un moyen de le faire sans réactiver l'affichage pour toute la feuille?

Merci Docteur Excel :D
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
Modifié par Vaucluse le 25/04/2011 à 19:44
Hé non, pas moyen, c'est toute la feuille ou rien.

par contre on peut ruser comme suit:
Dans votre modèle,les seules valeurs conditions"" incompatibles avec les calculs sont en colonne J O N seulement, les autres pilotées par L ne concernent pas les calculs

vous pouvez donc:

1° ) réactiver l'affichage des 0 dans l'option
2° ) modifier la condition d'entrée des colonnes autres que J O N en revenant sur "" soit au lieu de:
=SI(ESTVIDE(C6);0; placez =SI(ESTVIDE(C6);"";
(bien conserver le 0 sur les trois colonnes J O N)

3° ) dans ces trois colonnes:
sélectionnez chaque champ et appliquez une mise en forme conditionnelle comme suit
sélectionner la colonne J complète par exemple, dans la règle des colonnes
mise en forme conditionnelle / choisir en haut de la fenêtre "régle de mise en surbrillance" et " égal à":
dans la fenêtre de gauche entrez 0
dans le menu de celle de droite , sélectionnez: personnalisé et format / Police
choisissez la couleur de police identique à celle de la cellule (blanc donc dans votre modèle)
les valeurs 0 seront visibles uniquement dans la barre de formule et ,en surbrillance seulement, lors de la sélection du champ, mais pas pendant l'affichage normal.

bonne chance
crdlmnt
0
thebigdengaet Messages postés 26 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 4 février 2013
26 avril 2011 à 13:52
Merci pour votre précieuse aide pour l'élaboration de ce document :)
0