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.
 

Arnaud_91

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

Merci beaucoup Bond ! J'ai bien mis l'onglet développeur, effectivement je comprends pourquoi je comprenais jamais rien quand on me disait d'aller quelque part ... Vu que j'avais même pas l'onglet !

Bref, j'ai effectué ton codage, ça me met bien un message, il reste deux choses à corriger :

- Le message se met automatiquement lors qu'une date apparait en colonne I, il faut seulement que le message apparaisse lorsque cette date est <AUJOURDHUI()-15.

- Il faut mettre le numéro de dossier dans le message d'alerte. Il faudrait mettre le numéro de dossier correspondant (colonne A). Seulement ce numéro est seulement enregistré une fois et n'est donc pas sur toutes les lignes correspondantes à ce dossier en dessous. Est-ce gênant ?


Pourrais-tu m'aider à changer tout ça s'il te plaît ?

En tout cas merci, 10 jours de prise de tête à me bourrer le crâne sur Internet, et aujourd'hui j'avance enfin un peu :) !
 

bond

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

Merci beaucoup Bond ! J'ai bien mis l'onglet développeur, effectivement je comprends pourquoi je comprenais jamais rien quand on me disait d'aller quelque part ... Vu que j'avais même pas l'onglet !
Bon alors c'est mieux maintenant :)

Dans le code, cette ligne controle la présence d'une date et la valeur de la date dans le fichier par rapport à aujourdhui, donc c'est là qui faut intégrer <AUJOURDHUI()-15
Code:
If ActiveCell.Value > 1 And ActiveCell.Value < Date Then
à modifier avec
Code:
If ActiveCell.Value > 1 And ActiveCell.Value < Date-15 Then
Concernant le n° de dossier, le message (pour l'instant) attrappe ce qui est en A sur la ligne d'analyse de la date... je vais regarder comment gérer avec son enregistrement unique en début de paragraphe...
 

bond

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

Je crois avoir compris que tu veux qu'une alerte par dossier si la date de la derniere action de ce dossier est <15 jrs :eek:
Remplace le code précédent avec :
Code:
Option Explicit

Private Sub Workbook_Open()
'Définition des variables :
Dim ColDossier As String, ColDate As String
'Affectation des variables
ColDossier = "A"
ColDate = "I"
'Départ de la boucle à la derniè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 > 4 'pas d'action sur les lignes 1 à 4
    If ActiveCell.Value > 1 And ActiveCell.Value < Date - 15 Then 'controle valeur de date
        MsgBox "Attention dossier n° " & Cells(ActiveCell.Row, ColDossier).End(xlUp).Value _
            & " échéance dépassée !" 'affiche le message
        Cells(Cells(ActiveCell.Row, ColDossier).End(xlUp).Row - 1, ColDate).Select 'passe au dossier suivant
    End If
    ActiveCell.Offset(-1, 0).Select 'passe une ligne
Loop
'Fin Boucle.
End Sub
 

Arnaud_91

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

Autre chose : peut-on retirer le message qu'Excel affiche avant de fermer le fichier ? ("Avertissement concernant la confidentialité : ce document contient de smacros, des contrôles ActiveX, des informations sur le kit d'extension XML ou des composants Web. Ils peuvent renferme des informations personnelles qui ne peuvent pas être supprimées par l'Inspecteur de document.") Si oui comment l'enlèves-t-on ?
 

Arnaud_91

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

En fait pas vraiment, car il peut y avoir les deux dernières tâches à rappeler, donc c'est pas forcément uniquement la dernière action.

Il faudrait que ce soit comme ton 1er code mais en prenant le n°dossier du "paragraphe" correspondant.
 

bond

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

Il faudrait que ce soit comme ton 1er code mais en prenant le n°dossier du "paragraphe" correspondant
Donc, à nouveau, remplacer le code avec :
Code:
Option Explicit
Private Sub Workbook_Open()
'Définition des variables :
Dim ColDossier As String, ColDate As String
'Affectation des variables
ColDossier = "A"
ColDate = "I"
'Départ de la boucle à la derniè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 > 4 'pas d'action sur les lignes 1 à 4
    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 !" 'affiche le message
    End If
    ActiveCell.Offset(-1, 0).Select 'passe une ligne
Loop
'Fin Boucle.
End Sub
retirer le message qu'Excel affiche avant de fermer le fichier
Il faut faire un tour dans les Options d'Excel, Centre de gestion de la confidentialité, Paramètres...
 

Arnaud_91

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

Merci beaucoup =) !

^^ Mais non, c'est juste qu'il arrive d'envoyer un courrier à deux assurances par exemple (celle d'un locataire et l'assurance immeuble) donc il faut mettre en place le rappel sur les deux, mais sinon ce sera rare qu'il y ait plus de deux alertes sur le même dossier.

Je peux juste te demander un dernier truc ? Je voudrai, dans le message d'alerte, inclure les données de la colonne F. Cela correspond à la tâche effectuée justement, pour que l'on sache, en plus du n° dossier, de quoi on parle.
 

Arnaud_91

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

C'est bon j'ai réussi à retirer le message, merci !

Il fallait aller dans centre de gestion de confidentialité, paramètres, options de confidentialité, et décocher "supprimer les informations personnelles des propriétés du fichier lros de l'enregistrement".
 

bond

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

Je voudrai, dans le message d'alerte, inclure les données de la colonne F
Actualisation du code en conséquence :
Code:
Option Explicit
Private Sub Workbook_Open()
'Définition des variables :
Dim ColDossier As String, ColDate As String, ColEvenement
'Affectation des variables
ColDossier = "A"
ColEvenement = "F"
ColDate = "I"
'Départ de la boucle à la derniè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 > 4 'pas d'action sur les lignes 1 à 4
    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) & "Sujet : " & _
            Cells(ActiveCell.Row, ColEvenement).Value 'affiche le message
    End If
    ActiveCell.Offset(-1, 0).Select 'passe une ligne
Loop
'Fin Boucle.
End Sub
 

Arnaud_91

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

Cette fois c'est parfait parfait parfait ...

Merci beaucoup, tu sauves carrément mon projet, donc mon oral de fin d'année, donc l'obtention de mon BTS ^^.

Je me suis malheureusement embarqué dans une tâche beaucoup trop difficile pour un novice du code comme moi.

Encore merci pour ton aide, et d'avoir pris de ton temps !
 

Arnaud_91

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

Bonjour,

une question me taraude ^^.

Pourquoi le code effectue des messages d'alertes en commençant par les cellules du bas et pas par le haut ?

Ce n'est pas gênant, mais c'est juste pour info. J'essaie de comprendre au mieux l'ensemble du code et pourquoi avoir fait comme-ci ou comme ça.
 

Statistiques des forums

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