Page 1 sur 2

[OK]comment ajouter des heures ?

Posté : 20 janv. 2004, 12:41:00
par shyguy
Hello,

je dois faire un tableau à mon travail. Il faut additionner des heures (temps travaillé par 70 personnes). Il y en a énormement.

je dois rentrer les heures sous la forme :
1h15 = 1,15
30 minutes = 0,30

comment je fais pour les additionner et avoir un compte juste ??

exemple :
16+5+4,3+ 2,3+2+5=34,6 et je souhaite que cela affiche 35 h

Merci pour votre aide, j'en ai vraiment besoin...

(o;

Posté : 20 janv. 2004, 13:44:00
par nicko
Salut Shyguy,

Perso, j'utilise le format heure ([Format] > onglet [nombre] > [heure]

Je sépare les heures et les mn par ":"

Ex : 1h 15 > 1:15

Dans ce format, tu peux effectuer des opérations.

A+

Posté : 20 janv. 2004, 15:12:00
par shyguy
Hello,

non je ne peux pà´ effectuer d'operations...
(j'ai oublié de dire que j'utilise le pack office 97)

Une autre idée ?

Posté : 20 janv. 2004, 15:37:00
par nicopan
Salut Shyguy,

Va voir ici :
<a href="viewtopic.php?topic=21293&forum=29&13" target="_blank">viewtopic.php?topic=21293&forum=29&13</a>

C'est ds le forum Acces, ms ttes ls reponses, ou la plupart, sont pour Exell

Ciao


Posté : 20 janv. 2004, 17:07:00
par philippe
Salut.

J'ai retrouvé comment faire.
Mais à§a suppose, pour 1h et 30 min, de rentrer les valeurs :
1 (h) dans une colonne, et 30 (m)dans la suivante.

Supposons que tu veuille additionner :
- les minutes dans la colonne "C"
- les heures dans la colonne "B".

En bas (total) de la colonne minutes tu mets :
=MOD(SOMME(C4:C28);60)

En bas de la colonne heures tu mets :
=ARRONDI.INF(SOMME(C4:C28)/60;0) ----> oui, oui, on totalise bien la colonne "C" dans les deux totaux.

Ce qui a pour effet de totaliser les minutes dans la colonne "C" jusqu'à  60.
Au delà  de 60, la colonne "B", heures, affiche 1, puis 2, etc.
alors que la colonne minutes ne va pas au delà  de 60, et reprend à  1.

C'est pas très clair, je sais.
Il faut en faire l'essai sur une feuille Excel.

<B>Seul Hic :</B>
Si la colonne minutes à  60 min tout rond, le total affiché sera de 60 min (et pas 00),
et le total heures n'augmente pas.
Je suppose qu'on peut contourner à§a avec un "Si".

<hr>

A la réflexion, on peut peut-être faire à§a avec ton mode de saisie 1,30.
Il suffit de compter :
- ce qu'il y a à  droite de la virgule;
- ce qu'il y a à  gauche de la virgule.


Posté : 20 janv. 2004, 17:10:00
par Invité
salut
utiliser le système "centième" , si c'est possible....
là , il n'y aura aucun pb d'addition... (1h=100... 1/2 h=0.50), à  moins que le format 1h30 soit vraiment impératif... (là , aucune idée, je travaille en centième)....
salut

Posté : 20 janv. 2004, 17:43:00
par philippe
Je reviens à  mon truc.

La fonction TRONQUE renvoi l'entier du nombre, en laissant de cà´té la partie décimale.

Par exemple si on saisit 2,15 dans la cellule B6 :
=TRONQUE(B6;0)
renvoi la valeur 2 ------> le ,15 a disparu.

En combinant "Tronque" avec ce que j'ai mis ci-dessus, on peut arriver à  totaliser tout à§a.

------------------

Mais.
Je ne sais pas du tout s'il existe une Fonction pour tronquer le chiffre entier, afin de ne rester qu'avec la partie décimale.
Y a t il un bon en Excel parmi nous ?


Posté : 20 janv. 2004, 18:20:00
par philippe
Une étape de plus.

Cellule B6 nous avons 2,15
Cellule B30 c'est le résultat de l'opération
=TRONQUE(B6;0)
donne 2 dans la cellule B30 ----> en B6 il y a toujours 2,15

Soustraction : B6 (2,15) moins B30 (2) = 0,15
soit =B6-B30

Multiplication : 0,15 x 100 = 15 ---> et nous voila avec nos 15 min !
soit =(B6-B30)*100

A tout à  l'heure
Philippe.

Posté : 20 janv. 2004, 20:13:00
par Invité
Salut, Shyguy.

C'est bon. Mais il faut suivre.

Colonne B2 à  B26 : la saisie de tes données au format 1,30 / 2,15 / 1,05 / etc. (pour une personne).
Cellule B28 : le total de tes heures.
Cellule C28 : le total de tes minutes.

En cellule B28 :
=(TRONQUE(((SOMME(B2:B28)-(TRONQUE(SOMME(B2:B28))))*100)/60))+(TRONQUE(SOMME(B2:B28)))

En cellule C28 :
=MOD(((SOMME(B2:B28)-(TRONQUE(SOMME(B2:B28))))*100);60)


Tu peux maintenant entrer tes données sous forme de décimales.
Et merci à  Anonyme qui m'a mis sur la voie avec ses décimales à  lui.

(un peu long, car j'ai passé 1h 30 à  tourner en rond avec une référence circulaire).


Ooouuppss.
J'ai été Déconnecté.

@+
Philippe.

Posté : 20 janv. 2004, 20:15:00
par Kitty
Bonsoir Shyguy,

Je te propose l'exemple suivant :

<IMG SRC="userimg/(3884)Snap128.jpg" BORDER="0">

La colonne B contient les heures que tu saisies
1.30 = 1h 30mn
7.05 = 7h 05mn

Les colonnes C et D ne sont là  que pour effectuer des calculs intermédiaires. Elles peuvent être masquées.
La colonne C extrait la valeur "heure" de la colonne B
La colonne D extrait la valeur "minute" de la colonne B

Formule de C2 à  C4, exemple pour C2 ..... = ENT(B2)
Formule de D2 à  D4, exemple pour D2 ..... = (B2-ENT(B2))*100

En C7, on fait la somme des heures extraites. Formule ..... = SOMME(C2:C6)
En D7, on fait la somme des minutes extraites. Formule ..... = SOMME(D2:D6)

En B7, on reconstitue la somme totale (heures + minutes). La fonction est ...
=C7+(ENT(D7/60))+((D7-((ENT(D7/60))*60))/100)

Et voilou.

Je n'ai utilisé que des fonctions simples (ENT = partie entière de ; SOMME = somme de)

Pour sà»r, les connaisseurs d'Excel pourront simplifier tout à§a. En l'état, à§a fonctionne correctement !!

PS: Chez moi, le séparateur décimal est le point. Je pense que si tu as utilisé la virgule, c'est que le séparateur décimal est configuré comme à§a chez toi.


Posté : 20 janv. 2004, 20:21:00
par philippe
Salut.

Tu as maintenant 2 faà§ons de faire, Shyguy.
Et je me suis amusé comme un fou à  faire la mienne.

Posté : 21 janv. 2004, 11:03:00
par shyguy
Hello,

merci les gars. j'ai hélas pas mal d'imperatif a respecter. ils sont persuadé que je suis le dieu de l'excel ici... (ce qui n'est pà´ le cas!).

je DOIS avoir un affichage unique heure minutes, et je ne peux pas renter 0,50 au lieux de 0,30. Je dois être précis à  la minutes près (les heures sup des collègues). et je dois faire des totaux en colonne et ligne...

je vais étudier vos propositions. sachant donc que je suis obliger de rejeter la solution heure et minutes séparées. (désolé Kitty)

merci encore.

Posté : 21 janv. 2004, 12:22:00
par shyguy
Hello,

je me suis débrouiller avec la soultion de Philippe !
Merci à  tous!

(resultat sur 2 colonnes et 2 lignes, mais mon chef devra s'en contempter!)

Merci encore !

Posté : 21 janv. 2004, 13:22:00
par Kitty
Bonjour Shyguy,

Je crois détenir la solution miracle qui devrait répondre à  ton attente ...
Je vais essayer d'être aussi explitif que possible afin que tu comprennes au mieux la manip à  réaliser.

Dans un premier temps, tu définis une zone de saisie (zone dans laquelle tu entreras tes temps).
Tu sélectionnes ta zone puis tu lui attribues un nom. Dans mon exemple, elle s'appelle "ZoneDuree"

Ensuite, tu définis la cellule dans laquelle devra s'afficher le total des heures; tu lui attribues également un nom. Dans mon exemple, elle s'appelle "TotalDuree"

Maintenant :
1) Tu entres dans l'éditeur Visual Basic (outils / macros / Visual Basic Editor)
2) Dans le fenêtre de projet, tu sélectionnes ta feuille. Dans mon exemple, c'est "Feuil1"
3) Dans le fenêtre de code, section "Général" / "Déclarations", tu tapes le code suivant :
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1><b>Citation :</b></font></TD></TR></TABLE><TABLE BORDER=1 CELLPADDING=10 BORDERCOLOR=#FF0000 ALIGN=CENTER WIDTH=85%><TR BGCOLOR=#F3F2F4><TD><FONT SIZE=-1>Private Sub CalculTotalDuree()
Dim xMinute, xHeure, xTotalMinute, xTotalHeure
Dim xTotalDuree, xHeureMinute, xResteMinute
xTotalHeure = 0
xTotalMinute = 0
xTotalDuree = 0
For Each Item In Worksheets("Feuil1").Range("ZoneDuree")
xHeure = Int(Item)
xMinute = Item - xHeure
xTotalHeure = xTotalHeure + xHeure
xTotalMinute = xTotalMinute + (xMinute * 100)
Next
xHeureMinute = Int(xTotalMinute / 60)
xTotalHeure = xTotalHeure + xHeureMinute
xResteMinute = xTotalMinute - (xHeureMinute * 60)
Worksheets("Feuil1").Range("TotalDuree").Value = xTotalHeure + (xResteMinute / 100)
End Sub</FONT></TD></TR></TABLE>
4) Dans la fenêtre de code, section "Worksheet" / "Change", tu tapes le code suivant :
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1><b>Citation :</b></font></TD></TR></TABLE><TABLE BORDER=1 CELLPADDING=10 BORDERCOLOR=#FF0000 ALIGN=CENTER WIDTH=85%><TR BGCOLOR=#F3F2F4><TD><FONT SIZE=-1>CalculTotalDuree</FONT></TD></TR></TABLE>
5) Tu enregistres ton classeur (pour ne pas perdre tes modifs)

A chaque fois que tu modifieras quelque chose sur ta feuille, le recalcul automatique du total des heures sera lancé.

PS: Je te prépare des screenshots et je les insèrerai ici dès que je les aurai commenté.

<B>(édité à  13:45)</B>

Voici deux screenshots :

<IMG SRC="userimg/(3884)Capture1.jpg" BORDER="0">

La zone encadrée en rouge correspond à  la zone de saisie, définie avec le nom "ZoneDuree"
Pour attribuer le nom à  cette zone :
1) Sélectionner la zone. Dans l'exemple : de B2 à  B5
2) menu Insérer / Nom / Définir
3) Saisir "ZoneDuree" (sans les guillemets) dans "Noms dans le classeur".
Vérifier que la référence porte bien sur =Feuil1!$B$2:$B$5 (pour mon exemple)
4) Valider par OK et retourner sur la feuille

La zone encadrée en bleu correspond à  l'affichage du total des heures, définie avec le nom "TotalDuree"
Pour attribuer le nom à  cette zone, suivre le même principe que précédemment.
Vérifier que la référence porte bien sur =Feuil1!$B$7 (pour mon exemple)

Pour le code :

<IMG SRC="userimg/(3884)Capture2.jpg" BORDER="0">

J'espère que c'est suffisamment explicite pour toi. Si tu as un quelconque souci, contacte-moi.


Posté : 10 févr. 2004, 10:44:00
par shyguy
Hello Kitty,

je te repond en retard! )o;

je ne maitrise pà´ du tout le VB, je n'arrive pas à  utiliser ta solution, qui est pourtant allechante!

On en reparle par MP.

Merci bien à  toi d'avori chercher en tout cas!

(o;