EXCEL : Récupération heure pour macro

Résolu/Fermé
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 - 8 déc. 2013 à 11:21
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 8 déc. 2013 à 19:32
Bonjour,

J'ai besoin d'utiliser l'heure actuelle (seulement l'heure) dans une macro pour déterminer une action avant / après cette heure. J'ai utilisée une cellule du tableau avec la fonction
=HEURE(MAINTENANT()).
Ça fonctionne "presque" car j'obtiens bien cette heure MAIS elle ne se met pas à jour en direct. Il faut une action spécifique sur le tableau.
Merci à ceux qui voudront bien éclairer ma lanterne.
Bon dimanche
Alain

A voir également:

8 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 8/12/2013 à 11:29
Bonjour,

Que veux tu dire par "elle ne se met pas à jour en direct", veux tu qu'elle se mette à jour à chaque déclenchement de ta macro ou veux tu afficher l'heure courante dans une cellule et voir défilé les secondes, minutes etc

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 110
Modifié par alainjjb le 8/12/2013 à 12:39
Bonjour Mike,
merci de prendre en compte mon Help.
Par exemple si j'ouvre mon tableau à 11h59 ma cellule contenant l'heure actuelle affiche 11. Lorsque l'heure passe à 12 h, l'affichage reste à 11. Lorsque je vais cliquer sur le bouton "MAJ" qui lance la macro qu'elle est l'heure qui sera prise en compte dans cette macro : l'heure affichée ou l'heure réelle ? Que faut-il faire pour que l'heure affichée soit tjs l'heure réelle ?
Dans la macro je fais référence à la cellule qui contient l'heure affichée (Cf. formule du 1er message).
Merci encore
Alain
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
Modifié par Mike-31 le 8/12/2013 à 13:09
Re,

Je ne comprends pas très bien ton problème,

exemple en cellule B2 tu as 11 qui correspond à 11 heures, jusque là ça, mais ce 11 correspond à quoi, à l'heure d'ouverture du fichier ou au lancement du code à une heure précédente ou peux tu la saisir manuellement ?

ensuite tu souhaites lancer ta macro, il faut qu'elle reprenne ce 11 contenu en cellule B2 sans s'actualiser quelque soit l'heure, c'est bien cela ?

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 110
8 déc. 2013 à 13:17
En fait je vais plutôt t'expliquer mon besoin. Je dois, tout simplement tester dans la macro l'heure actuelle pour déterminer une action avant 19h/ après 19h. Dans la macro, Je dois également stocker cette heure actuelle dans heure dernière mise à jour. J'espère avoir été + clair.
Merci
Alain
0

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

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 déc. 2013 à 13:34
Bonjour,

l'heure dans ta feuille ne sera mise à jour que si ta feuille est recalculée. Par F9 par exemple.
Puisque tu es en macro pourquoi tu t'embêtes à utiliser cette valeur de feuille jamais à jour et que tu n'interroges pas l'heure dans ta macro ?
Dim h As Long
h = Hour(Time)
eric
0
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 110
Modifié par alainjjb le 8/12/2013 à 14:27
Bonjour Eric,
A la question "Pourquoi tu t'embêtes ..." ... Parce que, tout simplement je ne maîtrise pas les macros (ni le reste d'ailleurs).
Effectivement c'est ce que je vais faire. Pour être sur d'avoir compris :
En début de macro je définis la date : Dim h As Long
et lors du test je vais chercher l'heure : h = Hour(Time) et je la compare à mon heure référence : If h >= 19 Then ... et en fin de macro je mets à jour l'heure de dernière mise à jour : HDDMAJ = h
Est-ce OK ?
Merci
Alain
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 déc. 2013 à 14:51
Pas de pb, tout s'apprend.
Le mieux est quand même de tester d'abord la réponse proposée et de reposter si ça ne correspond pas à ton besoin ou si tu rencontre une difficulté. Là tu postes pour rien car la réponse est 'oui, vas-y'

Puisque tu débutes (depuis un moment quand même ;-) )tu devrais apprendre à utiliser les points d'arrêt (cliquer dans la marge de la ligne de code où tu veux que la macro fasse une pause, la ligne devient marron) ou bien en utilisant l'instruction Stop.

Là tu peux en mettre un sur la ligne h = Hour(Time) , lorsque la macro s'arrête tu fais un pas à pas avec F8 pour exécuter la ligne. Là si tu met ton curseur sur le 'h' de h = Hour(Time) (sans cliquer) tu verra apparaitre la valeur qu'a pris ta variable et voir si c'est ce que tu attends.
Ensuite tu peux refaire qcq pas à pas avec F8, ou bien relancer la macro avec F5.

Tu dois aussi apprendre à utiliser la fenetre 'Espions' (menu affichage).
Tu prends une variable, h par exemple, et tu fais un cliqué-glissé vers la fenetre espions.En pas à pas tu verras la valeur des variables qui t'interessent dans cette fenetre et contrôler si c'est bien ce que tu attends.

et en fin de macro je mets à jour l'heure de dernière mise à jour : HDDMAJ = h

Je n'en sais rien car toi seul sais ce que doit contenir HDDAJ.
Si tu avais essayé et testé tu aurais vu que s'il est 14:00, h contient 14 et c'est tout, conformément à ta demande.

eric
0
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 110
8 déc. 2013 à 17:46
Merci Eric pour tous ces conseils. Je vais d'ailleurs m'y mettre de suite.
A bientôt
Alain
0
alainjjb Messages postés 771 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 5 février 2024 110
8 déc. 2013 à 18:12
Bonjour,
Et ça Fonctionne nickel.
MERCI au généreux donateur de leur savoir.
Alain
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 déc. 2013 à 19:32
de rien.
N'oublie pas de mettre en résolu stp
eric
0