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
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
A voir également:
- Calcul d'horaire + Valeur d'une lettre
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Calcul moyenne excel - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Logiciel calcul plancher bois gratuit - Télécharger - Architecture & Déco
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
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
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.
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.
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
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 ?
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 ?
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
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
A+
Edit : Pourrais tu me faire la traduction en français, afin d'être sur de comprendre ta formule ? Merci
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
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")
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")
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
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 ! :)
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
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 :
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.
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.
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
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
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
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
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 ?
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 ?
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
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
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
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
Modifié par spe2d le 26/12/2010 à 00:32
Salut Vaucluse,
Je teste cela.
Merci pour ton aide !
Je teste cela.
Merci pour ton aide !
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
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?
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?