Afficher message alerte 1mois avant

Bnojour,

Je souhaite afficher un message d'alerte 1mois avant la date limite, pour la colonne X, mais cela fonctionne pas vous avez une idée?

Voici mon code

Sub date_échéance()
Dim Cel As Range
Dim msg As String, ceJour As Long

ceJour = Now()
For Each Cel In .Range("X11:X" & Rows.Count).End(xlUp).Row <-- erreur compilation

If DateDiff("d", Now, Cel.Value) < ceJour - 30 Then

msg = msg & "Certaines dates arrive à échéance dans moins d'un mois"
End If
MsgBox msg, vbInformation, "ATTENTION!" '<-- message dans box + bouton information et titre
Exit Sub
End If
Next

End Sub

Merci

Bonjour,

oui, et ?

Pour une différence en jours tu peux faire plus simplement date2-date1.
eric

bonjour, j'ai ajouter en gras mon erreur, je veux que ce soit par rapport a la date d'aujourd'hui

Bonjour,

A tester...

Sub date_échéance()
Dim Cel As Range, msg As String, ceJour As Long, i As Long
    ceJour = VBA.Now()
    For Each Cel In Range("X11:X" & Rows.Count).End(xlUp)
        If Not IsEmpty(Cel) And Cel.Value2 - ceJour < 30 Then i = i + 1
    Next Cel
    msg = "Certaines dates arrivent à échéance dans moins d'un mois."
    If i > 0 Then MsgBox msg, vbInformation, "ATTENTION!"    '<-- message dans box + bouton information et titre
End Sub

Merci pour ta réponse Jean-Eric .

Mais j'ai erreur exécution 13

incompatibilité type

Bonjour, Jean-Eric,

pour répondre à l'erreur de compilation sur cette ligne de code :
For Each Cel In .Range("X11:X" & Rows.Count).End(xlUp).Row <-- erreur compilation
Le "." devant Range stipule que vous faite référence à un objet défini par un "With" sur les ligne du dessus, hors il n'y en a pas, donc erreur de compilation.

Exemple de ce qui peut être fait :

With ActiveSheet
    .Range("B17").Value = "LouReeD"
End With

Alors ici c'est au plus simple et ne sert à rien (surtout le fait d'inscrire LouReeD en B17 de la feuille active), mais c'est pour vous montrer que le "." devant Range fait référence au With qui se trouve avant, donc à l'objet ActiveSheet.

Le With permet de simplifier l'écriture du code VBA en "factorisant" la référence d'un objet.

@ bientôt

LouReeD

Merci LouReeD pour cette réponse mais je ne comprend pas , dans mon exemple je devrait mettre (ne marche pas)

Sub date_échéance()
Dim Cel As Range
Dim msg As String, ceJour As Long

ceJour = Now()

With ActiveSheet
For Each Cel In .Range("X11:X" & Rows.Count).End(xlUp).Row

End With
If DateDiff("d", Now, Cel.Value) < ceJour - 30 Then

Je n'ai pas réfléchi au programme en lui même, j'ai juste répondu à l'erreur de compilation de VBA :
Avec un "." devant le Range, VBA attend et cherche un objet indiqué en référence par le biais de l'instruction With.

Hors votre code n'en a pas, donc erreur de compilation.

D'ailleurs la solution de Jean-Eric a supprimé ce point et alors pour VBA, un Range sans référence d'objet stipulé est automatiquement lié à la feuille active.

@ bientôt

LouReeD

Je comprend LouReeD

Le problème est que je ne comprend pas le code de
Jean-Eric et qu'il y a un problème

image
Vous ne pouvez pas m'aider ?LouReeD

Bonjour tout le monde !

Un essai avec une variante :

Sub date_échéance()

Dim msg As String, ceJour As Long, i As Long, Lig As Long, LigMax As Long

ceJour = Date
With Sheets("NomFeuille")
    LigMax = .Range("X" & Rows.Count).End(xlUp).Row
    For Lig = 11 To LigMax
        If .Range("X" & Lig) <> "" And .Range("X" & Lig) - ceJour < 30 Then i = i + 1
    Next Lig
    MsgBox Format(i / (LigMax - 10), "0%") & " des dates arrivent à échéance dans moins d'un mois.", vbInformation, "ATTENTION!"    
End With

End Sub

Oh pas mal du tout , cela fonctionne merci Pedro22

Mais est ce qu'il possible juste de mettre le nombre au lieu du pourcentage ?

Par exemple 2 date arrive a échéance?

et merci beaucoup a tous en passage

J'ai répondu a ma question , oui c'est possible

Mais est ce qu'il possible juste de mettre le nombre au lieu du pourcentage ?

Par exemple 2 date arrive a échéance?

Il te suffit de remplacer Format(i / (LigMax - 10), "0%") par i.

Oui, c'étais ma question a laquelle, j'ai répondu seul , j'ai fait pareil que toi ducoup

Encore merci

Rechercher des sujets similaires à "afficher message alerte 1mois"