OVH Cloud OVH Cloud

Afficher le nom selon l'heure !

13 réponses
Avatar
Leonard
bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais afficher un
nom selon l'heure du système dans une cellule. J'ai réussi à bloquer l'heure
dans une cellule avec une petite bidouille d'excel en utilisant maintenant()
et en modifiant le format d'affichage hh:"00". la feuille avec toutes les
données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la cellule
avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours en C2
si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et le
jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques


Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher Jacques et
si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher Pierre
pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.

10 réponses

1 2
Avatar
Alpha
Salut, une proc qui fonctionne très bien et qui donnera un début de réponse.

Sub bonjour()

Sheets("Accueil").Unprotect Password:="toto"
Select Case Format(Time, "hh:mm:ss")
Case "00:00:00" To "03:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
Case "04:00:00" To "06:59:59"
Sheets("Accueil").Range("F3") = "Bon réveil"
Case "07:00:00" To "09:59:59"
Sheets("Accueil").Range("F3") = "Bonne matinée"
Case "10:00:00" To "11:49:59"
Sheets("Accueil").Range("F3") = "Bonjour"
Case "11:50:00" To "12:29:59"
Sheets("Accueil").Range("F3") = "Bon appétit"
Case "12:30:00" To "15:49:59"
Sheets("Accueil").Range("F3") = "Bon après-midi"
Case "15:50:00" To "17:59:59"
Sheets("Accueil").Range("F3") = "Bonne fin d'après-midi"
Case "18:00:00" To "21:59:59"
Sheets("Accueil").Range("F3") = "Bonne soirée"
Case "22:00:00" To "23:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
End Select

Sheets("Accueil").Protect Password:="toto"
End Sub

Amicalement
Alpha

"Leonard" a écrit dans le message de news:
bq7i2k$p98$
bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais afficher
un

nom selon l'heure du système dans une cellule. J'ai réussi à bloquer
l'heure

dans une cellule avec une petite bidouille d'excel en utilisant
maintenant()

et en modifiant le format d'affichage hh:"00". la feuille avec toutes les
données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la
cellule

avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours en
C2

si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et le
jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques


Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher Jacques
et

si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher
Pierre

pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.




Avatar
Michel Gaboly
Bonjour,

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"Pierre";"Paul";"Jacques")

devrait faire l'affaire, ou

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"A1;A2;A3)

en mettant les prénoms correspondant aux 3 tranches dans les cellules
A1 à A3, ce qui facilite les mise à jour : il n'est + nécessaire d'adapter la
formule elle-même.

Le principe est que CHOISIR("Valeur";"Arg1";"Arg2";"Arg3";...) renvoie
l'argument correspondant à "Valeur" :

Si "Valeur" = 1, "Arg1"
Si "Valeur" = 2, "Arg2"
...

Heure(C2) - 5 permet de transformer les tranches en 0 à 8, 8 à 16 et
16 à 24. En divisant par 8 et en ajoutant 1, on a 1 à 2, 2 à 3 et 3 à 4;

CHOISIR() ignore les décimales.

Quant au MOD() ou modulo, qui renvoie ici le reste de la dicision par 24,
cela facilite le traitement des heures comprises entre 0 et 5 lorsqu'on
retranche 5 :

- 4 par exemple est ainsi transformé en + 20.


Voilà.



bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais afficher un
nom selon l'heure du système dans une cellule. J'ai réussi à bloquer l'heure
dans une cellule avec une petite bidouille d'excel en utilisant maintenant()
et en modifiant le format d'affichage hh:"00". la feuille avec toutes les
données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la cellule
avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours en C2
si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et le
jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques

Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher Jacques et
si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher Pierre
pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Leonard
Pour du rapide c'est du rapide !!!
Mais ça ne convient pas, c'est une piste mais il faut utiliser le petit
tableau avec les jours pour aller piocher dedans selon l'heure. Car ce mini
planning est amenée à être modifié une semaine sur l'autre il faut donc que
la macro prennent ses données dans le tableau sinon je vais devoir réécrire
la macro toutes les semaines.

Merci

"Alpha" a écrit dans le message de
news:%
Salut, une proc qui fonctionne très bien et qui donnera un début de
réponse.


Sub bonjour()

Sheets("Accueil").Unprotect Password:="toto"
Select Case Format(Time, "hh:mm:ss")
Case "00:00:00" To "03:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
Case "04:00:00" To "06:59:59"
Sheets("Accueil").Range("F3") = "Bon réveil"
Case "07:00:00" To "09:59:59"
Sheets("Accueil").Range("F3") = "Bonne matinée"
Case "10:00:00" To "11:49:59"
Sheets("Accueil").Range("F3") = "Bonjour"
Case "11:50:00" To "12:29:59"
Sheets("Accueil").Range("F3") = "Bon appétit"
Case "12:30:00" To "15:49:59"
Sheets("Accueil").Range("F3") = "Bon après-midi"
Case "15:50:00" To "17:59:59"
Sheets("Accueil").Range("F3") = "Bonne fin d'après-midi"
Case "18:00:00" To "21:59:59"
Sheets("Accueil").Range("F3") = "Bonne soirée"
Case "22:00:00" To "23:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
End Select

Sheets("Accueil").Protect Password:="toto"
End Sub

Amicalement
Alpha

"Leonard" a écrit dans le message de news:
bq7i2k$p98$
bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais
afficher


un
nom selon l'heure du système dans une cellule. J'ai réussi à bloquer
l'heure

dans une cellule avec une petite bidouille d'excel en utilisant
maintenant()

et en modifiant le format d'affichage hh:"00". la feuille avec toutes
les


données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la
cellule

avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours
en


C2
si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et
le


jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques


Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher
Jacques


et
si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher
Pierre

pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.








Avatar
Michel Gaboly
Bonjour Alpha,

Une procédure de ce type se justifie quand les tranches horaires sont de
durée inégale (ici, entre 40 mn et 4 heures), mais si elles sont égales,
une simple formule avec CHOISIR() suffit largement ;-))



Salut, une proc qui fonctionne très bien et qui donnera un début de réponse.

Sub bonjour()

Sheets("Accueil").Unprotect Password:="toto"
Select Case Format(Time, "hh:mm:ss")
Case "00:00:00" To "03:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
Case "04:00:00" To "06:59:59"
Sheets("Accueil").Range("F3") = "Bon réveil"
Case "07:00:00" To "09:59:59"
Sheets("Accueil").Range("F3") = "Bonne matinée"
Case "10:00:00" To "11:49:59"
Sheets("Accueil").Range("F3") = "Bonjour"
Case "11:50:00" To "12:29:59"
Sheets("Accueil").Range("F3") = "Bon appétit"
Case "12:30:00" To "15:49:59"
Sheets("Accueil").Range("F3") = "Bon après-midi"
Case "15:50:00" To "17:59:59"
Sheets("Accueil").Range("F3") = "Bonne fin d'après-midi"
Case "18:00:00" To "21:59:59"
Sheets("Accueil").Range("F3") = "Bonne soirée"
Case "22:00:00" To "23:59:59"
Sheets("Accueil").Range("F3") = "Bonne nuit"
End Select

Sheets("Accueil").Protect Password:="toto"
End Sub

Amicalement
Alpha

"Leonard" a écrit dans le message de news:
bq7i2k$p98$
bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais afficher
un

nom selon l'heure du système dans une cellule. J'ai réussi à bloquer
l'heure

dans une cellule avec une petite bidouille d'excel en utilisant
maintenant()

et en modifiant le format d'affichage hh:"00". la feuille avec toutes les
données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la
cellule

avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours en
C2

si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et le
jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques


Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher Jacques
et

si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher
Pierre

pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Leonard
Là c'est exactement ce qu'il me faut Merci beaucoup !!!

Je teste immédiatement !!!



"Michel Gaboly" a écrit dans le message de
news:
Bonjour,

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"Pierre";"Paul";"Jacques")

devrait faire l'affaire, ou

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"A1;A2;A3)

en mettant les prénoms correspondant aux 3 tranches dans les cellules
A1 à A3, ce qui facilite les mise à jour : il n'est + nécessaire d'adapter
la

formule elle-même.

Le principe est que CHOISIR("Valeur";"Arg1";"Arg2";"Arg3";...) renvoie
l'argument correspondant à "Valeur" :

Si "Valeur" = 1, "Arg1"
Si "Valeur" = 2, "Arg2"
...

Heure(C2) - 5 permet de transformer les tranches en 0 à 8, 8 à 16 et
16 à 24. En divisant par 8 et en ajoutant 1, on a 1 à 2, 2 à 3 et 3 à 4;

CHOISIR() ignore les décimales.

Quant au MOD() ou modulo, qui renvoie ici le reste de la dicision par 24,
cela facilite le traitement des heures comprises entre 0 et 5 lorsqu'on
retranche 5 :

- 4 par exemple est ainsi transformé en + 20.


Voilà.



bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais
afficher un


nom selon l'heure du système dans une cellule. J'ai réussi à bloquer
l'heure


dans une cellule avec une petite bidouille d'excel en utilisant
maintenant()


et en modifiant le format d'affichage hh:"00". la feuille avec toutes
les


données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la
cellule


avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours
en C2


si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et
le


jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques

Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher
Jacques et


si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher
Pierre


pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
Michel Gaboly
De rien ;-))



Là c'est exactement ce qu'il me faut Merci beaucoup !!!

Je teste immédiatement !!!

"Michel Gaboly" a écrit dans le message de
news:
Bonjour,

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"Pierre";"Paul";"Jacques")

devrait faire l'affaire, ou

=CHOISIR(MOD(HEURE(C2) - 5;24) /8 + 1;"A1;A2;A3)

en mettant les prénoms correspondant aux 3 tranches dans les cellules
A1 à A3, ce qui facilite les mise à jour : il n'est + nécessaire d'adapter
la

formule elle-même.

Le principe est que CHOISIR("Valeur";"Arg1";"Arg2";"Arg3";...) renvoie
l'argument correspondant à "Valeur" :

Si "Valeur" = 1, "Arg1"
Si "Valeur" = 2, "Arg2"
...

Heure(C2) - 5 permet de transformer les tranches en 0 à 8, 8 à 16 et
16 à 24. En divisant par 8 et en ajoutant 1, on a 1 à 2, 2 à 3 et 3 à 4;

CHOISIR() ignore les décimales.

Quant au MOD() ou modulo, qui renvoie ici le reste de la dicision par 24,
cela facilite le traitement des heures comprises entre 0 et 5 lorsqu'on
retranche 5 :

- 4 par exemple est ainsi transformé en + 20.


Voilà.



bonjour à tous,

J'ai un petit souci avec les noms et les heures. Je souhaiterais
afficher un


nom selon l'heure du système dans une cellule. J'ai réussi à bloquer
l'heure


dans une cellule avec une petite bidouille d'excel en utilisant
maintenant()


et en modifiant le format d'affichage hh:"00". la feuille avec toutes
les


données utile s'imprime automatiquement mais dans la une des cellules je
voudrais mettre le nom d'une personne selon l'heure affiché dans la
cellule


avec le format modifié.

En C2 j'ai 21h00 comment faire pour afficher en C3 " Paul" et toujours
en C2


si j'ai 05h00 comment faire afficher Pierre et enfin en C2 si j'ai 13h
comment faire pour afficher Jacques.

J'ai fait un petit tableau avec les prénom à afficher selon l'heure et
le


jour de la semaine

5h/13h 13h/21h 21h/5h
lundi Pierre Paul Jacques
mardi Pierre Paul Jacques
mercredi Pierre Paul Jacques
jeudi Pierre Paul Jacques
vendredi Pierre Paul Jacques

Quand le lundi C2 affiche 21h il faudrait qu'excel vienne piocher
Jacques et


si c'est mercredi et qu'il est 5h il faudrait qu'il viennent piocher
Pierre


pour le mettre en C3

Avez vous une piste car j'ai essayé pas mal de chose et je ne trouve
vraiment pas.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
AV
Pour le smilblick, autre approche :

=INDEX({"Jacques";"Pierre";"Paul";"Jacques"};EQUIV(A1;{0;0.20833;0.54166;0.875};
1))
ou avec les noms (ci-dessus) en B1:B4
=INDEX(B1:B4;EQUIV(A1;{0;0.20833;0.54166;0.875};1))
=INDEX($B$1:$B$4.... si recopie

Avantage (?) : si besoin, les tranches horaires sont facilement ajustable à la
minute près

AV
Avatar
Daniel.M
Salut Alain,

=INDEX(B$1:B$4;EQUIV(A1;{0;0.20833;0.54166;0.875};1))


On peut représenter les entiers dans la matrice, quitte à faire la division par
24 ensuite (AMA, plus précis):

=INDEX(B$1:B$4;EQUIV(A1;{0;5;13;21}/24;1))

"Just my 2 cents" comme on dit.

Daniel M.

Avatar
AV
On peut représenter les entiers dans la matrice, quitte à faire la division
par

24 ensuite


Sans aucun doute plus clair, plus court, plus précis (encore que, en allant à la
6° ou 7° décimale..;-)

AV

Avatar
AV
Re,

Juste un truc en réfléchissant ...à postériori ;-)
Selon qu'on veut inclure la borne ou non il faudra passer ou pas par des valeurs
décimales
...mais, dans tous les cas, la division de la matrice par 24 est une exeeelente
idée !

AV
1 2