Remplissage en temps et en heure

Résolu/Fermé
ouistitlilie Messages postés 16 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 3 juillet 2012 - 5 juin 2012 à 14:48
aquarelle Messages postés 7140 Date d'inscription dimanche 8 avril 2007 Statut Modérateur Dernière intervention 25 mars 2024 - 6 juin 2012 à 19:41
Bonjour,

Dans le cadre de mon stage, je cherche à créer une macro qui me permettrait de faire ceci :

Lorsque la cellule A2 est vide, 2h après le remplissage de la cellule A1, afficher un message disant "attention, vous n'avez pas répondu".

Est-ce possible?

Je pensais créer un fichier avec au moins 4 colonnes : DATE, HEURE, CLIENT, REPONSE.
Lorsqu'on reçoit une demande, on remplit les colonnes DATE, HEURE, CLIENT
Puis on a 2h pour remplir la case REPONSE, avant que le message disant "attention, vous n'avez pas répondu" s'affiche.

Qu'en pensez-vous?

Merci d'avance!

2 réponses

Bonsoir ouistitlilie,

Voici une façon de procéder :

Dans le module de code de ta feuille, tu copies le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
If Range("A1") <> "" And Range("A2") = "" Then Chrono
End Sub
Sub Chrono()
Hdeb = Now
Application.OnTime Now + TimeValue("00:00:05"), "Message"
End Sub

Puis dans un module standard :

Sub Message()
MsgBox "Attention, vous n'avez pas répondu !", vbOKOnly + vbExclamation, "DÉLAI DÉPASSÉ"
End Sub

Pour que tu puisses tester, j'ai réglé le délai à 5 secondes. Pour ton application finale, tu remplaceras "00:00:05" par "02:00:00".

Espérant avoir répondu.

Cordialement.
1
Ouistitlilie
6 juin 2012 à 10:14
Bonjour Papou, et merci de ta réponse qui m'aide beaucoup!
Cependant, je suis novice avec VBA. Pourrais-tu rajouter des commentaires pour chaque ligne afin que je puisse comprendre à quoi elles servent et réussir à les mettre dans mon programme?

Cordialement
0
aquarelle Messages postés 7140 Date d'inscription dimanche 8 avril 2007 Statut Modérateur Dernière intervention 25 mars 2024 1 302
6 juin 2012 à 19:06
Bonsoir ouistitlilie,

Voici un exemple, un peu adapté, de l'utilisation de la macro de papou avec quelques explications, en commentaires afin que tu puisses mieux comprendre :
http://cjoint.com/12jn/BFgtcyOvkpC.htm

Bonne soirée
0
ouistitlilie Messages postés 16 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 3 juillet 2012
6 juin 2012 à 19:21
Merci c'est super je comprends mieux comment l'utiliser sur mon fichier.
Une dernière question : la première ligne "Private Sub Worksheet_Change(ByVal Target As Range)"
J'ai toujours commencé mes macros par "Sub XXX()"
Pas de "private" avant ni d'écritures entre parenthèses.
peux-tu me dire à quoi ça sert?
0
aquarelle Messages postés 7140 Date d'inscription dimanche 8 avril 2007 Statut Modérateur Dernière intervention 25 mars 2024 1 302
Modifié par aquarelle le 6/06/2012 à 19:39
Private Sub Worksheet_Change(ByVal Target As Range)  
....  
End Sub
C'est, ce que l'on appelle une macro événementielle qui se lance lors de la création, modification ou effacement du contenu d'une cellule. Pour mieux comprendre, regarde ici : http://www.info-3000.com/vbvba/evenementfeuilleclasseurintro.php
http://www.info-3000.com/vbvba/evenementfeuille.php
0
ouistitlilie Messages postés 16 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 3 juillet 2012
6 juin 2012 à 19:39
D'accord! Merci beaucoup pour ces explications, je vais essayer de les mettre en oeuvre!
Bonne soirée
0
aquarelle Messages postés 7140 Date d'inscription dimanche 8 avril 2007 Statut Modérateur Dernière intervention 25 mars 2024 1 302
6 juin 2012 à 19:41
Bonne soirée à toi aussi. :)

PS: j'ai édité mon message pour ajouter un lien pour une explication plus globale de ce qu'est une macro événementielle
0