Macro "date atteinte"

Bonjour,

J'ai réussi à écrire une macro qui check toute une colonne de dates et affiche un message si une des date est - par exemple - 15 jours avant une date, et qui ne fait rien autrement.

Mais j'aimerai que dans ce second cas, un message s'affiche pour dire que tout est bon en gros, mais un seul message, j'ai réussi à avoir un message par date, mais si la colonne contient 450 dates par exemple mdr, j'ai pas envie d'avoir 450 fois le message "OK".

Merci d'avance, j'imagine que ça doit pas être bien dur, mais comme je débute, je vois pas trop comment faire.

Bonjour,

Pas sûr d'avoir tous compris !!

une possibilité que je ne sais pas incorporé dans le code déjà existant.....

je suppose qu'il y a une boucle (?)

début de boucle
if  date = -15jours then    compteur=compteur +1
fin de boucle

if compteur > 0 then
    msgbox "il y a " & compteur & " anomalies"
else
    msgbox "Aucune anomalie"
end if

A+

Comme c'est toujours gentil d'avoir un retour, je reviens répondre.

Désolé j'avais écrit un peu vite avant de partir donc ce n'est pas forcément clair, mais oui grâce à ta réponse j'ai réussi à obtenir ce que je voulais.

Par contre pour l'instant je ne comprends pas pourquoi ça fonctionne, donc je vais essayer de comprendre ça.

Voici le code (la macro s'appelle "envoi mail" car à la base je voulais faire autre chose lol) :

Sub Envoidu_Mail_Outlook()

    Dim cel As Range
    Dim compteur As Integer

    compteur = 0

    For Each cel In Range("B1:B" & Range("B1").End(xlDown).Row)

    If cel = Date + 15 Then

    MsgBox "Due date du " & cel.Offset(0, -1) & " bientôt atteinte !"

    compteur = 0

    GoTo finboucle

    Else

    compteur = compteur + 1

    End If

    Next cel

finboucle:

    If compteur > 0 Then

    MsgBox "OK"

    Else

    End If

End Sub

D'ailleurs j'ai maintenant un autre souci, c'est que si une date dans la colonne répond à la condition (c'est-à-dire si elle est dans 15 jours), alors le bon message s'affiche, ça c'est nickel, par contre le contrôle de la colonne s'arrête, moi je voudrais qu'il continue.

déplacer l'étiquette finboucle: juste avant Next cel

Merci pour les conseils, j'ai finalement trouvé un moyen sans utiliser de "goto" ni "label" parce que c'est merdique lol.

Et j'ai à nouveau modifier le code pour un envoi de mail, par contre, en l'état actuel, Outlook doit être ouvert, ou alors la macro va l'ouvrir, MAIS : existe-t-il un moyen pour que le mail soit envoyé en "arrière-plan", je veux dire par là, sans que Outlook ne soit ouvert.

J'ai trouvé beaucoup de code sur le net qui mettait un ".Send" au lieu de "Application.SendKeys "%s" mais ça ne fonctionne pas .

Sub Envoidu_Mail_Outlook()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim cel As Range
    Dim compteur As Integer
    Dim compteurB As Integer
    compteur = 0
    compteurB = 0

    For Each cel In Range("B1:B" & Range("B1").End(xlDown).Row)

    If cel = Date + 15 Then

        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)

        Shell "OUTLOOK.EXE", vbMaximizedFocus

        With OutMail
        .To = cel.Offset(0, 1)
        .Subject = "DD " & cel.Offset(0, -1) & " " & ": " & Date
        .Body = "Due date atteinte"
        .display
        .Save
        Application.SendKeys "%s"

    End With

    compteurB = compteurB + 1
    Else
    compteur = compteur + 1
    End If

    Next cel

If compteurB = 0 Then
If compteur = 0 Then
Else
MsgBox "Aucune due date proche"
End If
Else
End If

Set OutMail = Nothing
Set OutApp = Nothing

End Sub

Merci d'avance pour vos réponses.

Rechercher des sujets similaires à "macro date atteinte"