Message d'ouverture Excel faux

Bonjour à tous,

Grâce à deux membres du forum, j'ai réussi à faire ce tableau qui permet d'avoir un message d'alerte dès l'ouverture du fichier excel.

Je vous joins le tableau qui correspond tout à fait à ce que je voulais (le message d'alerte est bon) mais quand je change la date de fin par exemple de la convention 2019-001 et que je mets une date antérieure à aujourd'hui le message d'alerte n'est plus correct.

Le message d'alerte qui apparait est que les conventions 2019-001, 2019-003 et 2019-004 doivent être renouvelées alors que le message suivant devrait apparaitre "CONVENTION ARRIVEES A ECHEANCES" pour les trois conventions.

je n'arrive pas à comprendre pourquoi le message est bon quand au moins une des conventions est à renouvelées et le message faux quand il n'y a pas de convention à renouvelées.

Je vous remercie par avance.

Cdlt.

10modele-vierge.xlsm (33.60 Ko)

Bonjour,

La convention 2019-001 a comme échéance le 30 octobre, elle est donc "à renouveler" puisque l'échéance est dans moins de 2 mois.

Pour plus de clarté, tu peux modifier

mess4 = "CONVENTIONS DEVANT ÊTRE RENOUVELEES :" & Chr(10)

comme suit

mess4 = "CONVENTIONS À RENOUVELER D'ICI 2 MOIS :" & Chr(10) 

Merci Steelson mais mon problème ce n'est pas ça je pense que je suis mal exprimé.

Quand tu ouvres le fichier tu as ce message qui s'affiche (le message est bon).

Attention

CONVENTION DEVANT ETRE RENOUVELEES:

2019-001"Reportage"

CONVENTIONS ARRIVEES A ECHEANCES"

2019-003 "Installations Sportives"

2019-004"Stage"

Mais si tu change la date de la convention 2019-001 et que tu mets par exemple 15/*05/2019 au lieu de 30/10/2019 voici le message qui s'affiche (message faux)

Attention

CONVENTION DEVANT ETRE RENOUVELEES:

2019-001"Reportage"

2019-003 "Installations Sportives"

2019-004"Stage"

Hors le message qui devrait apparaitre est "CONVENTIONS ARRIVEES A ECHEANCES"

je te joins le fichier avec le bon message et la copie avec le mauvais message.

Hé hé, problème d'initialisation des messages ...

Merci Steelson mais mon problème ce n'est pas ça je pense que je suis mal exprimé.

Tu t'étais très bien exprimé, mais la macro était vicieuse car le message s'initialise une fois et reste gravé même s'il n'y a plus d'événements, bref c'était un peu le bazar mais c'était piégeant !
Option Explicit
Dim f As Worksheet
Private Sub Workbook_Open()
Set f = Feuil1
Dim i&, mess1$, mess2$, mess3$, mess4$, flag&
mess1 = "": mess2 = "": flag = 0
mess4 = "CONVENTIONS DEVANT ÊTRE RENOUVELEES :" & Chr(10)
mess3 = "CONVENTIONS ARRIVEES A ECHEANCES :" & Chr(10)

With f
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(i, 1) <> "" Then
            If Date >= .Cells(i, 5) And .Cells(i, 5) < DateSerial(Year(Date), Month(Date) + 2, Day(Date)) Then
                mess2 = mess2 & .Cells(i, 1) & " ''" & .Cells(i, 2) & Chr(10)
            ElseIf .Cells(i, 5) > Date And .Cells(i, 5) <= DateSerial(Year(Date), Month(Date) + 3, Day(Date)) Then
                mess1 = mess1 & .Cells(i, 1) & " ''" & .Cells(i, 2) & Chr(10)
            End If
            flag = 1
        End If
    Next i
    If flag = 1 Then
        MsgBox "ATTENTION ! " & Chr(10) & Chr(10) & mess4 & IIf(mess1 = "", "RAS" & Chr(10), mess1) & Chr(10) & mess3 & IIf(mess2 = "", "RAS" & Chr(10), mess2), 16
    End If
End With
End Sub
4modele-vierge.xlsm (34.23 Ko)

Un Grand Merci Steelson.

Bonne journée à toi

Rechercher des sujets similaires à "message ouverture faux"