MsgBox périodique?

Résolu/Fermé
Utilisateur anonyme - 8 juil. 2013 à 16:36
 Utilisateur anonyme - 9 juil. 2013 à 11:58
Bonjour tout le monde!

J'annonce tout de suite, je suis un grand novice en VBA et c'est pour cela que je viens vers vous!


Est-il possible de mettre en place un Msgbox qui s'afficherait de manière périodique (tous les X mois)?

Je travaille sur mon fichier et tous les X mois j'ai un Msgbox qui s'affiche avec le message souhaité.

Merci d'avance pour votre aide!


A voir également:

9 réponses

DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
8 juil. 2013 à 17:10
Bonjour,

Je peux t'aider sur la reflexion pas forcement sur le code.
J'ai quelque chose de similaire en place.

Dans une cellule (A1)tu as la date de dernière apparition ( pour la premiere tu mets une date ancienne : ex 01/011980)
Dans une seconde la période. (B1)
Dans une troisieme la date de dernière apparition + la période ( soit la date de prochaine apparition) (C1)
Quelque part sur ta feuille tu tape (=now) qui va reprendre la date de windows.
Dans une 4ème (D1)tu fais la différence entre la date se trouvant dans la cellule avec =now et la date de prochaine apparition ( cellule avec =now - C1)

Et après tu fais un bout de code qui te fait que quand ton compteur en D1 est négatif t'as Msgbox apparait.

Espérant t'avoir aidé.
DGVDR
0
Utilisateur anonyme
8 juil. 2013 à 18:01
Bonjour,

Merci pour ton intervention et le partage de raisonnement!

je vais me pencher sur la question, ça me parle assez bien.


Je ferai un saut ici dés que j'ai mis cela en place!

A bientôt!
0
Utilisateur anonyme
8 juil. 2013 à 18:52
Salut,

J'ai suivi ton raisonnement en faisant une petite modif' et ça marche au poil.

Merci pour l'aiguillage!

Passe une bonne soirée.
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
9 juil. 2013 à 09:04
Bonjour,

Quelle modif as tu effectué ?

Merci,
DGVDR
0

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

Posez votre question
Utilisateur anonyme
9 juil. 2013 à 10:47
Bonjour,

Rien de chamboulant :-)

J'ai simplement brûlé une étape intermédiaire dans ton raisonnement. Je n'affiche nulle part la période car je calcule immédiatement la date du prochain évènement.

En résumé :

A1 : Date du dernier évènement (celui qui se passe tous les X mois).

B1 Date à laquelle doit se produire le prochain évènement. Pour ma part j'ai adopté la formule suivante "=Mois.decaler(A1,X)" où X est le nombre de mois (donc la période). J'obtiens donc la date en A1 + un certains nombre de mois.

C1 La date du jour : "=Aujourdhui()"

D1 la formule "= B1-C1" (Date du prochain évènement - date du jour) ce qui me génère un compte à rebours en nombre de jours.

La MsgBox apparaît quand D1 est inférieur ou égal à 0.

Pour redémarrer le compte à rebours on change la date en A1 (date du dernier évènement).

Encore un grand merci pour ton aide.

BlndBnt.
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
9 juil. 2013 à 10:52
Je ne connaissais pas le =Mois.decaler.

Egalement quelques choses qui peut peut-être t'être utile, que j'ai mis en place pour ma part.

Dans ma MsgBox j'ai un bouton de validation ( je ne sais pas ce qui s'affiche dans la tienne...).

Lorsque tu appuis sur ce bouton, la date de dernière apparition est remplacée par la date au moment du clique ( celle de la case =Aujourdhui)

DGVDR
0
Utilisateur anonyme
9 juil. 2013 à 10:56
Ravi de t'avoir appris l'existence de cette utile petite formule!

Effectivement cela peut-être très pratique ton bouton. Etant très novice en VBA, puis je me permettre de te demander la manière dont on le met en place? :-)

Merci.

BlndBnt
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
9 juil. 2013 à 11:00
En gros :

If MsgBox(msgt, vbYesNo + vbInformation + vbMsgBoxcenter, "Alerte") = vbYes Then
    Worksheets("Commandes").Range("F" & A) = Worksheets("Commandes").Range("F" & A) + 7



- msgt étant le texte qui s'affiche dans ma message box, qui dit : "... voulez vous reportez ?"

Tu as en dessous un bouton Yes/No

Et comme tu peux le voir dans :

Worksheets("Commandes").Range("F" & A) = Worksheets("Commandes").Range("F" & A) + 7


Si on clique sur Yes, ma date ( en l'occurence de commande) qui se trouve dans la colonne F est reporté de 7 jours ( date entré + 7)

A ta dispo,

DGVDR
0
Utilisateur anonyme
9 juil. 2013 à 11:38
Merci c'est sympa!

Malheureusement je suis en galère ... je vais tenter de me débrouiller avec le pépin que je rencontre.

Je te tiens au courant.

BlndBnt.
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
9 juil. 2013 à 11:41
Enfaite c'est juste ta cellule de dernière apparition qui est incrémentée quand tu appuies sur Yes, ou sur Ok...
0
Utilisateur anonyme
9 juil. 2013 à 11:49
Oui j'avais saisi cette partie, la ou je galère c'est plutôt au niveau du code parce que j'ai créé une condition idiote qui fait que la MsgBox apparaît en boucle ^^. L'ergonomie du fichier devient donc....discutable.
0
DGVDR Messages postés 158 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
9 juil. 2013 à 11:53
Poste ton code, je peux peut être t'aider.
0
Utilisateur anonyme
9 juil. 2013 à 11:58
C'est bon code mis en place!


Private Sub Worksheet_Change(ByVal Target As Range)

If Range("R2") <= 0 Then
If MsgBox("Warning: It's time to update your workbook", vbYesNo, "Reminder") = vbYes Then

Worksheets("Sales Sheet").Range("P2") = Worksheets("Sales Sheet").Range("P2") + 180

End If
End If


End Sub

J'espere ne pas avoir fait de boulette...Après quelques tests cela semble bien fonctionner.


Merci pour les conseils!

BlndBnt
0