Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Affichage heures négatives

A

Anisa

Guest
Bonjour à tous,

Dans un tableau de calcul des heures travaillées par une personne en horaires 'souples', je cherche à afficher des heures négatives.

Par exemple, une semaine elle fera 37 heures au lieu de 35, mon tableau affiche + 2, par contre, si elle fait 33 heures pour compenser, le tableau doit afficher -2.

Et là, je cale !

Quelqu'un a-til une solution ?

(Ci-joint mon essai)

Bonne soirée !
 
A

Anisa

Guest
Anisa écrit:

...voici le fichier joint (je vais réapprendre à lire les consignes :whistle: )

Je précise que j'ai longuement cherché une réponse dans les sujets du forum, sans trouver exactement...

Merci de votre attention. [file name=heuresneg.zip size=5505]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/heuresneg.zip[/file]
 

Pièces jointes

  • heuresneg.zip
    5.4 KB · Affichages: 62

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Anisa, le forum

Je te propose une fonction personnalisée qui fera cela bien
Operation_Heure(Heure1 As Variant, Heure2 As Variant, Operation As String, Secondes As Integer)

heure1 correspond à la première variable
heure2 correspond à la seconde variable
Operation correspond à l'opération à réaliser, les quatres de base sont gérées + - * /
secondes à 0 pour ne pas afficher les secondes, à 1 pour les afficher

il faut que le format de ta cellule soit sur le format horaire correct pour reporter correctement les heures positives

Regarde le fichier exemple ou tu peux faire varier heure1 et heure2 comme tu le désires.

Cordialement, A+

[file name=Exemple_Heure_negatives.zip size=8977]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_Heure_negatives.zip[/file]
 

Pièces jointes

  • Exemple_Heure_negatives.zip
    8.8 KB · Affichages: 55

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re:Affichage et gestion des heures négatives

Bonjour Anisa, le forum

et voila la nouvelle version améliorée et débuguée
Operation_Heure(Heure1 As Variant, Heure2 As Variant, Operation As String, Secondes As Integer)

heure1 correspond à la première variable, horaire
heure2 correspond à la seconde variable, horaire ou entier pour * et /
Operation correspond à l'opération à réaliser, les quatres de base sont gérées + - * /
secondes à 0 pour ne pas afficher les secondes, à 1 pour les afficher
le résultat négatif ou positif peut être réutilisé par la même fonction.
il faut que le format de ta cellule soit sur le format horaire [hh]:mm: ss ou [hh]:mm (c'est le format de base choisi pour l'affichage négatif) pour gérer à l'identique les heures positives. Je réfléchis pour intégrer une détection des format des cellules servant de base au calcul mais il y a déja de quoi s'amuser, on peut faire les opérations de base sur des horaires positifs ou négatifs. Pour les horaires négatifs entrés manuellement, il ne faut pas oublier le ' en début (voir fichier exemple)

Cordialement, A+

[file name=Exemple_Heure_negatives_2.zip size=10933]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_Heure_negatives_2.zip[/file]

Message édité par: yeahou, à: 08/07/2005 10:48
 

Pièces jointes

  • Exemple_Heure_negatives_2.zip
    10.7 KB · Affichages: 42
A

Anisa

Guest
Re:Affichage et gestion des heures négatives

Bonjour à tous et Merci Yeahou pour t'être penché sur mon cas !

En fait, dans mon fichier les calculs d'addition et de soustraction marchent bien, c'est plutôt un simple problème d'affichage que je ne réussissait pas à résoudre.

Depuis hier soir, j'ai découvert que les heures négatives s'affichent très bien lorsqu'on passe en 'calendrier depuis 1904' avec un format personnalisé tel que [hh]:mm;-[hh]:mm.

Seul problème du coup... les dates qui changent....

Je cherche donc à afficher -[hh]:mm en calendrier 'normal'. Je suppose que c'est ce que résoud ta fonction.

Maintenant, comment faire pour qu'elle soit accessible depuis mon fichier ? ou pour la copier ? (ça doit être la base, mais je n'ai jamais créé de macro autrement qu'en l'enregistrant directement, donc sans passer par Visual Basic).

J'essaye de copier ça en attendant.

Merci encore,

Bien cordialement,
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re:Affichage et gestion des heures négatives

Re bonjour

ouvre tes deux fichiers
ensuite outils/macros/visual basic editor
la tu trouveras dans la fenètre projet tes deux fichiers
double clique sur le tien pour le sélectionner
fait menu insertion/module
double clique sur le fichier exemple pour le sélectionner
ouvre le module
sélectionne le texte et copie le
double clique sur ton fichier pour le sélectionner
ouvre le module et colle le code.

la fonction sera ensuite disponible dans ton fichier

A+
 
A

Anisa

Guest
Re:Affichage et gestion des heures négatives

Ca marche su - per, merci pour ton aide.

Pour perfectionner un peu plus encore, je souhaiterais afficher les heures négatives en rouge par exemple.

Comme je ne maîtrise pas VB, je ne sais pas ce que donne le résultat de ta formule, est-ce une heure, un nombre, un texte ?
Sur quoi puis-je appliquer ma mise en forme conditionnelle ?

J'ai essayé résultat<0 ; résultat<00:00
J'ai essayé également un format nombre avec le nombre négatif en format [rouge][hh]:mm, mais sans succès.

As-tu une idée ?

A+
 

Monique

Nous a quitté
Repose en paix
Re:Affichage et gestion des heures négatives

Bonjour,

Il faut savoir qu'Excel affiche #######, mais qu'il peut faire des calculs sur ces cellules.

Si c'est seulement un problème d'affichage
et si tu ne passes pas au calendrier depuis 1904
Pour la ligne 8 :
=SI(J8<K8;'-'&TEXTE(K8-J8;'[hh]:mm');J8-K8)
Le résultat obtenu est du texte si le résultat est négatif,
si le résultat est positif c'est une valeur numérique.

Après, ça se corse.
Si tu veux faire la somme de la colonne L,
avec son mélange de texte et de nombres :
=SI(SOMME(SI(ESTTEXTE(L$3:L27);DROITE(L$3:L27;5)*1;0))<SOMME(L$3:L27);SOMME(L$3:L27)-SOMME(SI(ESTTEXTE(L$3:L27);DROITE(L$3:L27;5)*1;0));'-'&TEXTE(ABS(SOMME(SI(ESTTEXTE(L$3:L27);DROITE(L$3:L27;5)*1;0))-SOMME(L$3:L27));'[hh]:mm'))
Formule matricielle, à valider par ctrl, maj et entrée.
Le résultat obtenu est du texte si le résultat est négatif,
si le résultat est positif c'est une valeur numérique.

Si tu veux tranformer le résultat-texte en nombre décimal :
=CNUM(SUBSTITUE(L30;'-';''))*-24
(cette formule peut servir au report de tes heures sur la feuille du mois suivant, par exemple)

Pour la dernière formule, on peut faire plus court
=SUBSTITUE(L30;'-'*-24

Message édité par: Monique, à: 08/07/2005 17:18

Suite
tu enlèves CNUM et une paire de parenthèses

Message édité par: Monique, à: 08/07/2005 17:19
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re:Affichage et gestion des heures négatives

Re bonjour Anisa, Monique

avec un format conditionnel, ça le fait !

A+

[file name=Exemple_Heure_negatives_3.zip size=10861]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_Heure_negatives_3.zip[/file]
 

Pièces jointes

  • Exemple_Heure_negatives_3.zip
    10.6 KB · Affichages: 48
A

Anisa

Guest
Re:Affichage et gestion des heures négatives

Merci Monique et Yeahou pour votre implication.

Monique, tu as su te mettre à mon niveau, je comprends tout...

Yeahou, tu as été le plus rapide et ta solution, (que je finirai par maîtriser, un jour, quand je serai grande...) m'a bien dépannée aussi.

A bientôt, pour de nouvelles aventures et bonsoir à tous.
 
D

Daso

Guest
Re:Affichage et gestion des heures négatives

Bonjour à tous,

Bon bien moi je ne comprends toujours pas...

si je fais simplement 9:00:00 - 15:00:00
mon résultat sera #####
Mon format de cellule est [h]:mm:ss
Jusque là nous sommes d'accord.

Maintenant, Que dois-je écrire dans le format (ou formule) pour mettre ça en heures négatives normales ??
j'ai éssayé ce que je vois ici mais je n'y arrive pas.

Prenons pour référence.
A1 = 9:00
A2 = 14:00
A3 = le résultat qui devrait être -5:00

Meric d'avance
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…