Calcul d'horaire + Valeur d'une lettre

Résolu/Fermé
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 - Modifié par spe2d le 21/12/2010 à 17:35
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 - 26 déc. 2010 à 00:26
Bonjour,

J'ai besoin d'aide afin d'améliorer un planning.

J'aimerais pouvoir donner une valeur mathématique à une lettre que je pourrais mettre dans n'importe quelle case.
Par exemple, si j'écris "O","F", etc. et qu'après je souhaite faire la somme de tous les jours, cela me compte ces lettres comme une valeur de 8.

Ensuite, est-il possible de calculer des plages horaires. Par exemple, si j'écris 8h-14h, qu'il me compte une valeur de 6 qui correspondrait aux 6 heures.

Merci :)

Edit : Sur du excel bien entendu. ;)





Xidus
A voir également:

6 réponses

g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
21 déc. 2010 à 17:53
Bonjour,

Cela doit pouvoir se faire assez facilement à condition que chaque lettre ou heure corresponde à une cellule.
Exemple:
A1=O
A2=F
D1=8:00
D2=14:00

A préciser.
0
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
21 déc. 2010 à 17:57
Et bien non en fait, il faudrait qu'à partir du moment ou je tapes un "O" par exemple, il me le prenne comme une valeur 8 si je fais une somme. :/

Merci pour ta réponse !

Pour le calcul des plages horaires, je suppose que le plus simple est de séparer le début et la fin sur deux cellules, et de faire un soustraction pour chaque jour, tout en additionnant les jours du mois, dans la cellule finale non ?
0
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
Modifié par spe2d le 23/12/2010 à 14:01
Merci vaucluse pour ta réponse, ne sachant faire que de simples formules du genre si, si et, etc. je vais me pencher sur ta réponse. Je reviendrais donner ce que je suis arrivé à faire, ou non. :)

A+

Edit : Pourrais tu me faire la traduction en français, afin d'être sur de comprendre ta formule ? Merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
23 déc. 2010 à 15:25
Bonjour
en français... mais c'st en français ,.. enfin presque
les codes composants la formule:

TEMPSVAL
transforme en valeur horaire un texte composés de valeurs capables de représenter un code horaire, on y reviendra.

STXT(cell;N° départ;nombre de caractères)
édite la partie du texte de la cellule à partir du N° de départ et avec le nombre de caractère affichées

TROUVE(texte cherché, cell;n° départ)
renvoi le N° d'ordre dans le texte de cell depuis le début du texte,et correspondant à la position du caractère trouvé après le N° de départ donné.

NBCAR(cell)
compte le nombre de caractères composant la séquence définit par une formule ou l'ensemble de la cellule entre parenthèses

GAUCHE(texte;nombre de caractères)
ressort le texte à gauche dans la cellule selon le nombre de caractères indiqué

Revenons à la formule:
TEMPS VAL et on ouvre la parenthèse
STXT(A1 cherche dans le texte en A1
;TROUVE("-";A1;1)+1: recherche la position du tiret dans A1que l'on augmente de 1 pour commencer au 1° caractère après le tiret
;NBCAR(A1)-1 définit le nombre de caractère de A1 moins 1 pour éliminer le h de la fin
-TROUVE("-";A1;1))
définit le nombre de caractère avant le premier chiffre du second nombre d'heure

Ainsi cet ensemble définit le nombre de caractères à éditer dans la formule STXT
ceci afin de traiter deux cas pour l'horaire de fin:
soit le nombre est à deux chiffres, soit à un seul;
la dernière parenthèse ferme le code STXT
Après cette parenthèse:
&"00" complète le code pour TEMPSVAL de façon à créer l'ensemble:
horaire fin:00
que TEMPSVAL traduit en code heure Excel.

le deuxième TEMPSVAL est plus simple
GAUCHE(A1 cherche dans le texte A1
TROUVE(voir plus haut même combat mais avec le premier h et cette fois -1 pour ne ressortir que les caractères avant le h
et la fin idem pour TEMPSVAL

espérant avoir été clair, ce n'est pas facile par courriel!

Ceci dit, je persiste à dire que de créer une colonne A pour le début et une colonne B pour la fin est un tout petit peu plus simple... à savoir B1-A1 au lieu de la formule décortiquée ici... qui ne marche peut être pas ,d'ailleurs si les horaires comportent des minutes.
Bonne route


cdlmnt






=TEMPSVAL(STXT(A1;TROUVE("-";A1;1)+1;NBCAR(A1)-1-TROUVE("-";A1;1))&":00")-TEMPSVAL(GAUCHE(A1;TROUVE("h";A1;1)-1)&":00")
0
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
23 déc. 2010 à 15:35
Ok, merci, effectivement, je pense que la soustraction sur deux case, une heure de départ, une de fin, sera bien plus simple, je vais voir ce que j'arrive à en tirer, merci en tout cas pour ton aide ! :)
0
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
23 déc. 2010 à 15:11
Bon, j'ai commencé la formule, et cela à l'air de fonctionner, il ne me reste plus qu'à ajouter le calcul des heures.

Voilà ce que ça donne :
=NB.SI(B7:X7;"O")*8+NB.SI(B21:P21;"O")*8+NB.SI(B7:X7;"F")*8+NB.SI(B21:P21;"F")*8...


J'aimerais maintenant ajouter le calcul de la différence de chacune des cellules horaires.

Exemple :

|O | F | F | F| O | 18h-22h | F | 12h-20h30 | O | O |

Cela représente un exemple de cellules pour les plannings.
Donc la formule que j'ai déjà me permet de calculer la somme de toutes les cellules qui sont remplies par les lettres que je souhaite, il ne me reste plus qu'à pouvoir également calculer le nombre d'heures effectuées dans celles remplies par des tranches horaires.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 23/12/2010 à 17:23
Ça ne devrait pas être trop difficile si vous séparez vos tranches horaires début / fin,quasiment indispensable car si vous avez plusieurs tranches à calculer sur la ligne la formule via TEMPSVAL va devenir imbuvable
Ainsi vous pouvez écrire:
=(NB.SI(B7:X7;"O")+NB.SI(B21:X21;"O")+NB.SI(B7:X7;"F")+NB.SI(B21:X21;"F"))*8+col fin-col début+col fin- col début autant de fois que vous avez de champ horaire

nota:
si votre résultat est supérieur à 24 heures ce qui est probable, formatez bien la cellule en format personnalisé:
[hh]:mm
sinon elle ne vous renverra à l'affichage que la valeur dépassant un nombre de jours exact:
par exemple , un total de 38 vous renverra 14:00:00 et 38:00:00 en format hh entre crochets

de même si vos limite début / fin chevauche deux dates, il faut ruser pour la soustraction et utiliser le code:
=MOD(Heure fin - heure début;1)
qui marche dans tous les cas.

Bonne chance

crdlmnt
0

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

Posez votre question
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
23 déc. 2010 à 20:52
Une autre question, j'avance petit à petit.
J'ai utilisé des mise en forme conditionnelles suivant les lettres que j'ajoutais n'importe où dans le tableau.
Exemple : Si je mets un "F" dans une case, cette même case passe en fond bleu.

Mais,
Le O correspond à Ouverture, et le F à fermeture.

Voilà un petit screen.
https://imageshack.com/

Ce que j'aimerais, c'est deux mises en forme conditionnelles qui feraient ce qui suit :
Si il y a un "O" dans une case, alors celle qui est juste à sa droite passe en rose.
Si il y a un "F" dans une case, alors celle qui est juste à sa gauche passe en bleu.

C'est possible ?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
24 déc. 2010 à 07:44
Bonjour
spe2d

Je suppose que l'exemple correspond à ce que vous avez, pas à ce que vous voulez
pour faire ce que vous voulez, qui risque de créer quelques surprises en bout de tableau??(voir suite)

n'ayant pas les réf lignes colonnes sur votre image, je suppose, à vous d'adapter:

le champ:C4:P15


sélectionnez le champ de B4 à P15, soit une colonne avant le début
MFC bleu pour valeur F:
la formule:
=C4="F" (attention C4 pour un champ qui commence en B4
va passer en bleu la cellule à droite du F

et donc aussi celle qui contient le titre de la ligne.....??
même opération pour le O mais avec le champ D4:Q15
et la formule =C4="O"

et bien sur, cette fois, l'affichage sort du tableau à droite si vous avez O dans la dernière colonne?

crdlmnt
0
spe2d Messages postés 111 Date d'inscription jeudi 7 octobre 2010 Statut Contributeur Dernière intervention 23 novembre 2013 33
Modifié par spe2d le 26/12/2010 à 00:32
Salut Vaucluse,

Je teste cela.

Merci pour ton aide !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 22/12/2010 à 10:21
Bonjour
sauf erreur de compréhension, si O a une valeur fixe (évidemment!) il suffit de compter
le nombre de O dans la plage et de multiplier par la valeur:
=NB.SI(Champ;"O")*valeur1
si vous voulez la somme de plusieurs lettres dans le même champ:
=NB.SI(champ;"O")*valeur O+NB.SI(champ;"A")*valeur A etc...:

Quant au calcul de temps que vous demandez, il serait plus simple de rentrer les limites dans deux cellules différentes, mais on peut vous pondre une formule sous conditions

chaque horaire et suivi de h 8h-14h
les deux limites sont séparées par un tiret sans blanc:

une formule selon les horaires placés en A1::
=TEMPSVAL(STXT(A1;TROUVE("-";A1;1)+1;NBCAR(A1)-1-TROUVE("-";A1;1))&":00")-TEMPSVAL(GAUCHE(A1;TROUVE("h";A1;1)-1)&":00")

Amusez vous bien!!

crdlmnt

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
-1