Créer une alerte à l'ouverture d'un fichier

Arnaud_91

XLDnaute Nouveau
Bonjour à tous, je suis nouveau sur le forum.

Dans le cadre d’un stage en agence immobilière, où mon projet consiste à gérer les sinistres en copropriété.

J’ai donc effectué une base de données de tous les sinistres en cours, avec un historique et des dates. Une partie de mon projet consiste à créer un message d’alerte qui se mettrait à l’ouverture du fichier Excel, lorsqu’une date est dépassée.

Exemple : Courrier RAR envoyé à l’assurance – 01/03/2011 : Nous sommes le 15 mars 2011, cela fait deux semaines que nous n’avons pas de réponse donc ce jour, lorsque j’ouvrirai Excel, il faut un message d’alerte du style « Attention : Dossier n°XXXX. Aucun événement depuis 2 semaines ».

Cela servirait à se rappeler des éventuelles relances ou tâches à faire. Une fois la tâche réalisée, on retire la date qui figurera dans la colonne « date à rappeler » afin qu’Excel cesse d’alerter.


Voilà, à ce que j’ai lu sur Internet il faudrait utiliser les macros et faire en gros de la programmation … Le gros problème est que j’en ai jamais fait :( ! J’espère que vous pourrez m’aider et j’espère avoir été assez clair.
 

bond

XLDnaute Occasionnel
Re : Créer une alerte à l'ouverture d'un fichier

Les commandes qui suivent la section :
Code:
'Départ de la boucle à la dernière cellule de la feuille
en partant d'un Ctrl+Fin (xlLastCell en vba), elles permettent de traiter avec certitude l'ensemble de la feuille sans risque lié aux sauts uniques ou multiples de ligne.
 

Arnaud_91

XLDnaute Nouveau
Re : Créer une alerte à l'ouverture d'un fichier

Merci de ta réponse.

J'ai essayé d'améliorer un peu tout seul, j'ai ajouté la colonne C en tant que colonne sinistre pour savoir de quel sinistre on parle, c'est mieux.

Donc ça tout seul ça marche, mais après en remettant la colonne F Evénement ben, je sais pas, je n'arrive pas à faire en sorte que ça marche ... Pourrais-tu m'aider stp ?


Mon code actuel (avec erreur(s)) :

Option Explicit
Private Sub Workbook_Open()
'Définition des variables :
Dim ColDossier As String, ColDate As String, ColSinistre, ColEvenement
'Affectation des variables
ColDossier = "A"
ColSinistre = "C"
ColEvenement = "F"
ColDate = "I"
'Départ de la boucle à la première cellule de la feuille
ActiveCell.SpecialCells(xlLastCell).Select
Cells(ActiveCell.Row, ColDate).Select
Selection.End(xlUp).Select
'Début Boucle :
Do While ActiveCell.Row > 2 'pas d'action sur les lignes 1 à 2
If ActiveCell.Value > 1 And ActiveCell.Value < Date - 15 Then 'controle valeur de date
MsgBox "Attention dossier n° " & _
IIf(Cells(ActiveCell.Row, ColDossier).Value = "", _
Cells(ActiveCell.Row, ColDossier).End(xlUp).Value, _
Cells(ActiveCell.Row, ColDossier).Value) & _
" ; échéance dépassée !" & Chr(10) & "Sinistre : " & _
IIf(Cells(ActiveCell.Row, ColSinistre).Value = "", _
Cells(ActiveCell.Row, ColSinistre).End(xlUp).Value, _
Cells(ActiveCell.Row, ColSinistre).Value) 'affiche le message, _
& Chr(10) & "Sujet : " & _
Cells(ActiveCell.Row, ColEvenement).Value 'affiche le message

End If
ActiveCell.Offset(-1, 0).Select 'passe une ligne
Loop
'Fin Boucle.
End Sub




PS : Désolé je ne sais pas comment vous faites pour insérer du code dans une autre zone de texte et garder la mise en page.
 
Dernière édition:

bond

XLDnaute Occasionnel
Re : Créer une alerte à l'ouverture d'un fichier

pour insérer du code dans une autre zone de texte et garder la mise en page
En réponse, choisir 'Aller en mode avancé' et utiliser le bouton 'Ajouter Balise de code' #.

Tu peux poser un bout de ton fichier pour voir où il en est avec nos allez-et-retours (les miens surtout ;-)
 

Arnaud_91

XLDnaute Nouveau
Re : Créer une alerte à l'ouverture d'un fichier

Okok.

Ci-joint le fichier actuel (avec la formule défaillante du coup).

J'ai aussi ajouté une mise en forme conditionnelle afin de surligner toute la ligne en rouge lorsque l'échéance est dépassée. Ca permet d'avoir un repère visuel en plus de l'alerte à l'ouverture du fichier !
 

Pièces jointes

  • Copie de Base de données sinistres en cours.xlsm
    33 KB · Affichages: 97

bond

XLDnaute Occasionnel
Re : Créer une alerte à l'ouverture d'un fichier

Remplace :
Code:
        MsgBox "Attention dossier n° " & _
            IIf(Cells(ActiveCell.Row, ColDossier).Value = "", _
            Cells(ActiveCell.Row, ColDossier).End(xlUp).Value, _
            Cells(ActiveCell.Row, ColDossier).Value) & _
            " ; échéance dépassée !" & Chr(10) & "Sinistre : " & _
            IIf(Cells(ActiveCell.Row, ColSinistre).Value = "", _
            Cells(ActiveCell.Row, ColSinistre).End(xlUp).Value, _
            Cells(ActiveCell.Row, ColSinistre).Value) 'affiche le message, _
            & Chr(10) & "Sujet : " & _
            Cells(ActiveCell.Row, ColEvenement).Value 'affiche le message

par :
Code:
        MsgBox "Attention dossier n° " & _
            IIf(Cells(ActiveCell.Row, ColDossier).Value = "", _
                Cells(ActiveCell.Row, ColDossier).End(xlUp).Value, _
                Cells(ActiveCell.Row, ColDossier).Value) & _
            " ; échéance dépassée !" & Chr(10) & _
            "Sinistre : " & Cells(ActiveCell.Row, ColSinistre).Value & "." & Chr(10) & _
            "Sujet : " & Cells(ActiveCell.Row, ColEvenement).Value       'affiche le message
 

Arnaud_91

XLDnaute Nouveau
Re : Créer une alerte à l'ouverture d'un fichier

Oui mais là ça va pas car la colonne sinistre, c'est comme la colonne dossier, il faut remonter à la cellule précédente car la nature du sinistre n'est pas marqué à chaque ligne.

Je l'avais fait dans mon code moi, mais je ne sais pas comment tout lier pour que ça fonctionne correctement.
 

bond

XLDnaute Occasionnel
Re : Créer une alerte à l'ouverture d'un fichier

Donc c'est plutot ça :
Code:
    MsgBox "Attention dossier n° " & _
            IIf(Cells(ActiveCell.Row, ColDossier).Value = "", _
                Cells(ActiveCell.Row, ColDossier).End(xlUp).Value, _
                Cells(ActiveCell.Row, ColDossier).Value) & _
            " ; échéance dépassée !" & Chr(10) & _
            "Sinistre : " & _
            IIf(Cells(ActiveCell.Row, ColSinistre).Value = "", _
                Cells(ActiveCell.Row, ColSinistre).End(xlUp).Value, _
                Cells(ActiveCell.Row, ColSinistre).Value) & _
            "." & Chr(10) & _
            "Sujet : " & Cells(ActiveCell.Row, ColEvenement).Value 'affiche le message
 

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel