Message d'alerte "conditionnel" à l'ouverture du fichier - besoi
Résolu
HIBISCUS988
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
HIBISCUS988 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
HIBISCUS988 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Message d'alerte "conditionnel" à l'ouverture du fichier - besoi
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
7 réponses
Bonjour,
1-
Place dans un de tes modules la fonction suivante :
Que tu appelles, dans le module ThisWorkbook par :
2-
choix 1 : Ta MFC peut être restreinte à moins de 65000 cellules comme c'est le cas actuellement
choix 2 : tu peux la remplacer par une macro événementielle.
1-
Place dans un de tes modules la fonction suivante :
Function Alerte(What As String) As Double Alerte = WorksheetFunction.CountIf(Sheets("reservations").Columns(8), What) End Function
Que tu appelles, dans le module ThisWorkbook par :
Private Sub Workbook_Open() Dim Msg As String Dim NbTerm As Double, NbRequis As Double, NbEcheance As Double NbEcheance = Alerte("échéance à surveiller") If NbEcheance > 0 Then Msg = "Vous avez " & NbEcheance & " réservation(s) en cours, échéance à surveiller" & vbCrLf NbRequis = Alerte("réquisition à faire") If NbRequis > 0 Then Msg = Msg & "Vous avez " & NbRequis & " réquisition(s) à faire et à transmettre à la compagnie aérienne concernée" & vbCrLf NbTerm = Alerte("terminé") If Msg = "" And NbTerm > 0 Then Msg = "Vous n’avez pas de réservations en cours" Else Msg = Msg & "Vous avez " & NbTerm & " réservations terminées" End If MsgBox Msg, vbInformation End Sub
2-
choix 1 : Ta MFC peut être restreinte à moins de 65000 cellules comme c'est le cas actuellement
choix 2 : tu peux la remplacer par une macro événementielle.
Bonjour, et Merci infiniment Pijaku pour tes explications, je viens de tester et il y a 2 ou 3 petits détails qui ne vont pas, mais c’est de ma faute, dans la précipitation, j’ai oublié certains détails d’importance.
Dans la feuille réservations, dans la colonne G, j’ai 3 niveaux d’alertes automatiques :
1 : pour « réquisition à faire » Message d’alerte à l’ouverture du fichier : « vous avez nbre réquisitions à faire …..» + icône rouge critical
2 : pour « réservation en cours, échéance à surveiller » Message d’alerte à l’ouverture du fichier « Vous avez nbre réservations en cours, échéances à surveiller » + icône jaune exclamation
3 : pour « terminé » Message d’alerte à l’ouverture du fichier « Vous n’avez pas de réservations en cours » + icône information Uniquement si aucune autre alerte (1) et (2) en cours
Pour la MFC, je vais essayer de trouver une macro événementielle et tester ça sur mon fichier.
- Je te présente toutes mes excuses en espérant que tu pourras encore m’aider avec ces précisions (si c’est possible). Ca serait vraiment génial. Merci d’avance.
Dans la feuille réservations, dans la colonne G, j’ai 3 niveaux d’alertes automatiques :
1 : pour « réquisition à faire » Message d’alerte à l’ouverture du fichier : « vous avez nbre réquisitions à faire …..» + icône rouge critical
2 : pour « réservation en cours, échéance à surveiller » Message d’alerte à l’ouverture du fichier « Vous avez nbre réservations en cours, échéances à surveiller » + icône jaune exclamation
3 : pour « terminé » Message d’alerte à l’ouverture du fichier « Vous n’avez pas de réservations en cours » + icône information Uniquement si aucune autre alerte (1) et (2) en cours
Pour la MFC, je vais essayer de trouver une macro événementielle et tester ça sur mon fichier.
- Je te présente toutes mes excuses en espérant que tu pourras encore m’aider avec ces précisions (si c’est possible). Ca serait vraiment génial. Merci d’avance.
Tu veux donc 2 ou 3 MsgBox.
Ok.
Ok.
Private Sub Workbook_Open() Dim NbRequis As Double, NbEcheance As Double NbEcheance = Alerte("échéance à surveiller") If NbEcheance > 0 Then MsgBox "Vous avez " & NbEcheance & " réservation(s) en cours, échéance à surveiller", vbExclamation NbRequis = Alerte("réquisition à faire") If NbRequis > 0 Then MsgBox "Vous avez " & NbRequis & " réquisition(s) à faire et à transmettre à la compagnie aérienne concernée", vbCritical If NbRequis + NbEcheance = 0 Then MsgBox "Vous n’avez pas de réservations en cours", vbInformation End Sub
Merci pijaku, je viens de tester, le message à l'ouverture me dit que je n'ai pas de réservation en cours, alors que j'en ai une avec échéance au 15 février (alerte 2 ne fonctionne pas). Merci pour ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Effectivement, j'ai enlevé la majuscule de "Echéance à surveiller", et ça fonctionne. Mais du coup je ne comprends pas, car ça fonctionne pour l'alerte 3 avec une majuscule à "Terminé". En tous cas merci infiniment pour ton aide, je me lance dans la macro événementielle pour mon dernier objectif.
Pijaku, je suis un peu perfectionniste, et en rajoutant plusieurs échéances avec des niveaux d'alerte 1 et 2, les messages d'alerte à l'ouverture suivent l'ordre des cellules, donc il m'affiche le message d'alerte 2 avant les messages d'alerte 1. Aurais tu une astuce pour que les alertes 1 s'affichent en premier (réquisition à faire). Désolée d'abuser de ton temps, et d'avance un grand merci pour ton aide, je galère depuis pas mal de temps et toi tu me donnes la solution en 5 minutes.
Toi, tu n'as rien compris au code...
Private Sub Workbook_Open() Dim NbRequis As Double, NbEcheance As Double NbRequis = Alerte("réquisition à faire") If NbRequis > 0 Then MsgBox "Vous avez " & NbRequis & " réquisition(s) à faire et à transmettre à la compagnie aérienne concernée", vbCritical NbEcheance = Alerte("échéance à surveiller") If NbEcheance > 0 Then MsgBox "Vous avez " & NbEcheance & " réservation(s) en cours, échéance à surveiller", vbExclamation If NbRequis + NbEcheance = 0 Then MsgBox "Vous n’avez pas de réservations en cours", vbInformation End Sub