Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

Excel Forum d'entraide sur Excel

Réponse
 
Outils de la discussion
Vieux 05/10/2008, 08h08   #1 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 7
Par défaut Calcul des heures ne fonctionne plus

Bonjours à tous et à toutes

J'ai créé un tableau qui effectue le calcul des heures de travail hebdomadaire.
Le tout fonctionne bien....mais afin de faciliter la saisie des heures j'ai personnalisé les cellules avec ce format 00":"00 pour ne taper que les chiffres des heures et des minutes sans avoir à taper le séparateur des heures ":" .

Le résultat est que les cellules n'étant plus au format HEURES le calcul des heures ne fonctionne plus.

Peut-on contourner le problème?

merci de votre aide
laurent53 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/10/2008, 09h26   #2 (permalink)
Membre éclairé
 
Date d'inscription: juillet 2007
Messages: 364
Par défaut

bonjour
Je pense que tu dois faire de cette façon
Code :
=somme(A1:B1)*1
avec A1 et B1 les cellules qui ont ton format personnalisés

Dernière modification par Philippe JOCHMANS ; 07/10/2008 à 06h05 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif
cb_60 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/10/2008, 10h29   #3 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 7
Par défaut

Bonjour CB60

J'ai essayé ta méthode.... mais sans succés.

Mon tableau calcul de la façon suivante :

(cellule heure de fin - cellule heure de début) - cellule temps de pause
laurent53 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/10/2008, 12h19   #4 (permalink)
Membre expérimenté
 
Date d'inscription: octobre 2007
Localisation: Nantes
Messages: 531
Envoyer un message via MSN à ouisansdoute
Par défaut

Bonjour,

si tu saisis 0330 dans ta cellule, avec le format définit elle aura la forme 03:30 mais le chiffre saisi sera bien 330

si tu saisis dans une cellule au format heure:minute Excel 3heures 30 la valeur numérique stockée sera 0,145833333333333.

pour conserver ton format personnalisé il faut donc jongler avec plusieurs paramètres pour la convertir.
A mon avis le mieux serait peut-être de renoncer à ton format personnalisé.

Mais je ne connais pas toutes les ressources d'Excel...
ouisansdoute est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/10/2008, 12h56   #5 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 7
Par défaut

Bonjour Ouisansdoute

Oui je pense aussi, mais la saisie serait tellement plus simple et rapide. Je vais tenter une methode avec cellules cachées de conversion.

Te remercie de ta réponse et vous tiens informé de la progression ou de la résolution de mon problème.

merci
laurent53 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/10/2008, 14h54   #6 (permalink)
Membre expérimenté
 
Date d'inscription: octobre 2007
Localisation: Nantes
Messages: 531
Envoyer un message via MSN à ouisansdoute
Par défaut

Je précise que, lorsque tu rentres 3:30 dans une cellule au format hh:mm Excel, en fait il s'agit de 3h30 le 1/1/1900 ce qui complique un peu les choses...

si on parle de 3h30 du matin, le 5 octobre 2008 la valeur numérique Excel correcte est 39726,145833
ouisansdoute est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 14h39   #7 (permalink)
Invité régulier
 
Date d'inscription: septembre 2008
Messages: 9
Par défaut

Pour ce qui est de la facilité du saisi, tu as raison c'est plus simple de saisir seulement les chiffres, et en voici la méthode que j'aurais utilisé :

pour la colonne du saisi tu la mets sous format "Texte" et une autre à coté avec la formule ci après tu aura un calcul juste des heures.

Formule :
Code :
CONCATENER((STXT(A1;1;2));":";(STXT(A1;3;2)))
Cellule A1 = 0330 -> 03:30

j'espère que c'est ce que tu cherche !!

Dernière modification par Philippe JOCHMANS ; 07/10/2008 à 06h05 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif
id_titom est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 14h52   #8 (permalink)
Membre expérimenté
 
Date d'inscription: octobre 2007
Localisation: Nantes
Messages: 531
Envoyer un message via MSN à ouisansdoute
Par défaut

L'idée est bonne mais STXT ne fonctionne correctement que si l'heure est supérieure ou égale à 10 car si la saisie est 0220 elle se présentera 02:20 en fonction du format personnalisé, sera égale à 220 comme valeur numérique, mais le STXT(A1;1;2) donnera 22 et non pas 2.
ouisansdoute est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 16h38   #9 (permalink)
Invité régulier
 
Date d'inscription: septembre 2008
Messages: 9
Par défaut

J'avoue que je n'ai pas trop compris le raisonnement de "ouisansdoute" mais le but de l'opération est bien de calculer le temps de travail non ?

Dans mon cas on est au bureau à 8h00 on a une pause de 1h00 so on
travail 8h00 la journée non ?

Colonne A............Colonne B.............Colonne C............Colonne D
heure de début.....temps de pause.....heure de fin..........Résultat
0800................... 0100................... 1700................... 8:00


Formule de la cellule Résultat :
Code :
= ((CONCATENER((STXT(C1;1;2));":";(STXT(C1;3;2))))-(CONCATENER((STXT(A1;1;2));":";(STXT(A1;3;2)))))-(CONCATENER((STXT(B1;1;2));":";(STXT(B1;3;2))))

Dernière modification par Philippe JOCHMANS ; 07/10/2008 à 06h06 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif
id_titom est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 17h00   #10 (permalink)
Membre Expert
 
Avatar de jacques_jean
 
Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 263
Par défaut

Bonjour,

A toutes fins utiles si vous n'êtes pas allergique aux macros ou interdit de macros par votre entreprise vous pouvez copier ce code dans la fenêtre VBA et sur la feuille contenant vos données après avoir formaté les cellules en texte :

Code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 3 Then
Exit Sub
Else
    hm = Target.Value
    hm = Left(hm, 2) & ":" & Right(hm, 2)
    Target.Value = hm
End If
End Sub
Si les données ne sont pas dans les 3 1ères colonnes vous pouvez adapter la 2ème ligne, exemple si la 1ère colonne est "C" :
Code :
If Target.Column < 3 and Target.Column > 5 Then
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
jacques_jean est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 20h27   #11 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 092
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Bonsoir

Si tu saisis 330 pour 3:30 et 1745 pour 17:45, tu peux utiliser une formule de conversion. Avec ta saisie en A1, tu peux utiliser la formule
Code :
=(ENT(A1/100)+(A1/100-ENT(A1/100))/60*100)/24
en mettant la cellule de la formule au format [h]:mm

Une autre façon est d'utiliser la fonction TEMPS.
Code :
=TEMPS(GAUCHE(A1;NBCAR(A1)-2);DROITE(A1;2);0)
Tu dois évidemment utiliser ces formules au sein de ton calcul...

Mais je rejoins Ouisansdoute. Je ne vois pas trop le problème de saisir la valeur avec les :, ce qui traduit la saisie directement en valeur "horaire"...
__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.

Dernière modification par Pierre Fauconnier ; 06/10/2008 à 21h47
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 15h10   #12 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 7
Par défaut

Bonjour à tous et merci pour vos réponses

Désolé de ne m'être pas manifesté plus tôt mais je ne suis disponible que le week end ... boulot oblige !!

J'ai bien noté vos remarques et vos conseils et me lance de suite dans leurs applications ... je vous tiens informé.
laurent53 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 16h01   #13 (permalink)
Membre émérite
 
Avatar de wilfried_42
 
Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 982
Par défaut

Bonjour à tous

pour simplifier la lecture dans les formules, tu peux aussi définir la formule comme une cellule nommée

exemple : tes heures saisies sont en colonne A

Menu insertion / Nom / Definir
Le nom de la plage : tmps
la formule :
Code :
=(GAUCHE(Feuil1!$A1;NBCAR(Feuil1!$A1)-2) & ":" & DROITE(Feuil1!$A1;2))*1
ensuite en B1 tu mets =tmps pour transformer A1, tu tires vers le bas pour transformer les autres
__________________
Wilfried

venez visiter mon zoo - Cliquez-ici merci
wilfried_42 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 18h33   #14 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 7
Par défaut

Bonjour et merci Wilfried 42

J'aurais une question pour Jacques Jean, quand on indique le code
If Target.Column < 3 and Target.Column > 5 Then

cela signfie " entre la 3ème et 5ème colonne " n'est-ce pas ? corrigez moi si je me trompe.

Si c'est le cas je souhaiterais savoir si je peux limiter ce code seulement à certaines cellules.

Par exemple: dans la colonne "C" appliquer le code aux cellules "C3,C4,C5" puis aux cellules "C9,C10,C11", dans la colonne "F" aux cellules "F3,F4,F5" puis "F9,F10,F11" etc....

car certaines cellules ont un format texte défini comme "DATE" "HEURE DE DEBUT" .... " TOTAL DES HEURES EFFECTUEES" et désire qu'elles restent protégées contre une saisie involontaire.

merci
laurent53 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide