![]() |
| 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é. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 7
|
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 |
|
|
|
|
|
#2 (permalink) |
|
Membre éclairé
![]() Date d'inscription: juillet 2007
Messages: 364
|
bonjour
Je pense que tu dois faire de cette façon Code :
=somme(A1:B1)*1 Dernière modification par Philippe JOCHMANS ; 07/10/2008 à 06h05 Motif: Ajout des balises codes (sélection du code + #), ce n'est pas facultatif |
|
|
|
|
|
#4 (permalink) |
|
Membre expérimenté
![]() |
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... |
|
|
|
|
|
#5 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 7
|
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 |
|
|
|
|
|
#6 (permalink) |
|
Membre expérimenté
![]() |
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 |
|
|
|
|
|
#7 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 9
|
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))) 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 |
|
|
|
|
|
#8 (permalink) |
|
Membre expérimenté
![]() |
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.
|
|
|
|
|
|
#9 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 9
|
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 |
|
|
|
|
|
#10 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 263
|
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 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.
|
|
|
|
|
|
#11 (permalink) |
![]() |
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 Une autre façon est d'utiliser la fonction TEMPS. Code :
=TEMPS(GAUCHE(A1;NBCAR(A1)-2);DROITE(A1;2);0) 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 |
|
|
|
|
|
#12 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 7
|
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é. |
|
|
|
|
|
#13 (permalink) |
|
Membre émérite
![]() Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 982
|
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 |
|
|
|
|
|
#14 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 7
|
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 |
|
|
|
![]() |
![]() |
||
Calcul des heures ne fonctionne plus
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|