MsgBox périodique?
Résolu/Fermé
A voir également:
- MsgBox périodique?
- Calendrier periodique - Télécharger - Santé & Bien-être
- Vba msgbox bouton personnalisé - Forum VB / VBA
- Msgbox vbokcancel ✓ - Forum VB / VBA
- Personnaliser sa MsgBox ✓ - Forum Excel
- Msgbox vbyesnocancel ✓ - Forum VB / VBA
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
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
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
Utilisateur anonyme
8 juil. 2013 à 18:01
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!
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!
Utilisateur anonyme
8 juil. 2013 à 18:52
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.
J'ai suivi ton raisonnement en faisant une petite modif' et ça marche au poil.
Merci pour l'aiguillage!
Passe une bonne soirée.
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
9 juil. 2013 à 09:04
Bonjour,
Quelle modif as tu effectué ?
Merci,
DGVDR
Quelle modif as tu effectué ?
Merci,
DGVDR
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
9 juil. 2013 à 10:47
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.
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.
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
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
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
Utilisateur anonyme
9 juil. 2013 à 10:56
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
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
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
9 juil. 2013 à 11:00
En gros :
- 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 :
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
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
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
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...
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
9 juil. 2013 à 11:53
Poste ton code, je peux peut être t'aider.
Utilisateur anonyme
9 juil. 2013 à 11:58
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
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