Remplissage en temps et en heure

Résolu
ouistitlilie Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   -
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

papou
 
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
 
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 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 304
 
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   Statut Membre Dernière intervention  
 
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 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 304
 
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   Statut Membre Dernière intervention  
 
D'accord! Merci beaucoup pour ces explications, je vais essayer de les mettre en oeuvre!
Bonne soirée
0
aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 304
 
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