IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Envoie mail automatique en fonction d'une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut Envoie mail automatique en fonction d'une date
    Bonjour,

    Je souhaiterais faire une macro qui permettrai l'envoie d'un mail automatique en fonction d'une date

    Je m'explique, j'ai un tableau avec des contrats de maintenance et des dates de fin. Je souhaiterai q'un mail soit envoyé automatiquement 3 mois avnt la date de fin d'un contrat

    Pouvez vous m'aider ?

    D'avance merci

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    Pouvez vous m'aider ?
    1. Avec aussi peu d'info : Non !!
    2. Le but de ce forum est d'aider, pas de faire en lieu et place.
    3. Commence par expliquer quel soft tu utilises pour le mail, puis à réfléchir où sont les données à envoyer,
    4. Fais un début de code en VBA, où aide-toi de l'enregistreur de macro et puis reviens avec ton code même cracra
    5. Il y a pleins d'exemples compatibles avec ta demande dans la FAQ et dans ce forum
    6. ... et oui, c'est un suant qu'on devient suzerin.

  3. #3
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Moi je suis gentil je vais t'aider
    Si tu n'as jamais fait de macro : http://silkyroad.developpez.com/VBA/DebuterMacros/
    Pour les généralité lis d'abord ca : http://bidou.developpez.com/article/VBA/
    Une fois que tu maitrise les bases
    pour piloter la messagerie : http://excel.developpez.com/faq/?page=Messagerie
    D'ici une semaine même pas tu sera au point

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Voici mon bout de code pour envoie de mail a partir d'excel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub EnvoiClasseurAd()
    Dim myadress(1 To 2)
     
    Set mylst = ActiveSheet.Range("a200:a201")
    Count = 1
     
    For Each Envoi In mylst
    If Len(Envoi) Then myadress(Count) = Envoi: Count = Count + 1
    Next
     
    ActiveWorkbook.SendMail Recipients:=Array(myadress(1), myadress(2)), Subject:=" Alerte Stock Cartouches"
     
    End Sub
    Après je ne sais pas comment faire envoyer le mail en fonction d'une date. Ce que je voudrais c'est si dans la colone date de fin un des dates est inférieur de 3 mois à la date du jours alors on onvoit un mail

    Est ce possible ?
    D'avance merci pour l'aide

  5. #5
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Ben parcour les lignes de ton tableau pour lire les date compare a la date d'aujourd'hui
    Pour connaitre la date d'aujourd'hui c'est simplement Exemple Pour travailler sur les date (ajouter retrancher des mois problème de format,etc)
    http://access.developpez.com/faq/?page=dates

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Oui c'est ce que je veux faire mais c'est pas simple

    Pour info je debuté totalement en macro.. donc un peu d'aide serait le bienvenu

    merci

  7. #7
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    On pourrais te donner plein d'exemple particulier mais ca ne te fera pas progresser.
    Parcourir un tableau récupérer des valeur sont la base. A mon avis tu devrais commencer par lire les tutos faire quelque exercice avant de vouloir te lancer dans un gros code. Car au final tu va copier coller des code qui te seront fourni a droite et a gauche tu ne les comprendra pas et quand tu aura un problème ou une modif a faire tu sera complètement coincé
    On a tous débuté moi il y a quelque mois a peine, mais ce n'est pas en récupérant des code que l'on progresse mais en faisant des petits exos

    Pour parcourir une colonne le principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i=1 to DerniereLigne 
    if TonTest then 
    ceque tu veux faire
    end if
    next i
    Dans la boucle i utilise
    C'est la cellule ligne i colonne 1
    Pour faire le test utilise datediff du tuto que je t'ai filé sur les dates entre cells(i,1) et la date d'aujourd'hui
    Tu regarde si c'est égale a 3 mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if datediff(........) =3 then
        call EnvoiClasseurAd
    end if
    Pour connaitre la dernirèe ligne du tableau regarde ceci
    http://www.developpez.net/forums/d45...gnees-feuille/

    Essaye de faire ton code et on te le corrigera

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Bonjour tout d'abor merci pour ton aide

    J'ai créé mon module dans lequel j'ai mis mon code envoieclasseurad

    Maintenant dans ma feuille 1 je vais mettre ma macro

    Ce que j'ai fait c'est que ds une cellule de mon tableau j'ai mis la date du jour (=ajourdhui()) et maintenant je souhaitreais comparé la colone date de fin de contrat avec cette date

    Ds ton code je ne comprend pas tout ? comment comparer ma colone à cette cellule ?Car ds ma condititino je veux mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If datediff (date fin colone - date du jour) <3 then call EnvoiClasseurAd
    Mais comment faire ?

  9. #9
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    en utilisant la commande cells
    pour avoir la valeur de la cellule ligne i colonne j (pour la colonne E, j=5)
    Tu boucle sur ta colonne et tu remplace date du jour par la date d'aujourd'hui tu peux mettre directement date
    et la date fin colonne par la date dans la cellule ligne i colonne n (je ne sais pas dans quel colonne tu es)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Excuse moi mais je ne comprend pas mes lignes son numértoté avec des chiffres (1,2,3,4,5....) et le colones avec des lettres (A,B,C,D...)

    toi tu me parle de la ligne i ??? la je ne comprend pas

    Après tu me dis "tu remplace date du jour par la date d'aujourd'hui " la je ne comprend pas non plus ???

    ENcore dsl et merci pour l'aide

  11. #11
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    i et j sont de variable
    si i=1 et j=3
    cells(i,j) est la cellule C1

    Enfin bref je te conseil fortement de lire des tutos et de faire des exos avant de te lance sérieusement dans ton programme. Car si tu ne maitrise pas la base tu risque fort de foncer droit dans le murs.
    (je t'ai filé plein de lien a toi de les lire)

    Sinon ton code tout fait, je te laisse le soin de le commenter et de chercher a comprendre ce qu'il fait
    Je part du principe que les date sont en colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim i as long
    For i=1 to Range("A65536").End(xlUp).Row
       If DateDiff("m", Date, Cells(i, 1)) = 3 Then
          call EnvoiClasseurAd
       end if
    next i

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Ok j'ai mit le code et j'ai mit des dates dans la colone A qui sont superieur de 3 mois à la date d'aujourdhui

    Si je lance la macro manuellement avec le bouton play il m'envoit quand meme un mail alors que normalement ça ne devrait pas !!!

    Je me pose une autre kestion, kan la macro sera OK il faudra systématiquement que je sois ds le fhcier pour qu'il check les dates et envoie un mail ou ???

    Merci pour l'aide

  13. #13
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Dans le if remplace le =3 par un < 3
    Pour le reste tu aura la réponse quand tu comprendra le code

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Ecoute dsl j'ai remplacé le =+ par <3 mais ça ne change pas le pb dès que j'appuie sur le bouton play il lance la macro et menvoie un mail alors que ça ne devrait pas car les dates sont supérieurs à la date du jour.....

  15. #15
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To Range("A65536").End(xlUp).Row
    If DateDiff("m", Date, Cells(i, 1)) <= 3 And DateDiff("m", Date, Cells(i, 1)) > 0 Then
    MsgBox i
    End If
    Next i
    Ca envoie un mail a chaque fois qu'il rencotre une date qui est dans les 3 prochain mois don la on est en juin ca fonctionne pour juillet auout sepetembre.

    mais sérieusement j'ai jamais utilisé datediff et pratiquement jamais travaillé sur les dates en quelque essai tu peux trouver...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    oui je sais j'ai bien compris mais dans ma colone A je n'ai mit que des dates en décembre 2009 donc ça ne devrait pas m'envoyer de mails !!!

  17. #17
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Tu as utilisé le dernier code que je t'ai filé? en mode pas a pas ca donne quoi? regarde les valeur de la cellule et de date
    Chez moi en mettant tout décenbre 2009 ca passe, en mettant des datte dans les 3 prochain mois ca envoie le courier, en mettant des date après septembre ca n'envoie pas en metant des dates déjà passé ca n'envoie pas. A partir de la je ne peux pas t'aider d'avantage

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Oui j'ai utilisé exactement le code que tu m'a donnée que j'ai mis dans Microsoft excel Object / Feuill1
    Puis j'ai créé un modul ou j'ai mis mon code envoiclasseurad

    Tu as fait pareil ? La franchement je ne comprend pas ???
    En mode pas à pas il ne me dit rein il execute la macro et m'envoie le mail je n'ai pas plus d'info....

  19. #19
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    J'utilise ce code directement dans le code de ma feuille (visiblement come toi)
    Bon j'ai pas envi d'envoyer des mail a tout va donc je me contente d'afficher le numéro de ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To Range("A65536").End(xlUp).Row
    If DateDiff("m", Date, Cells(i, 1)) <= 3 And DateDiff("m", Date, Cells(i, 1)) > 0 Then
    MsgBox i
    End If
    Next i
    Essaye de faire un classeur exemple avec quelque date en colonne A et de le joindre a ton prochain message je regarderais

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Points : 24
    Points
    24
    Par défaut
    Voila je t'ai mis en pièce jointe le classeur

    Merci pour ton aide
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Mail alerte en fonction d'une date
    Par luis18 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/12/2013, 19h44
  2. [Toutes versions] Fonction envoi mail automatique : modifier le destinataire
    Par Balmarugby dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/07/2013, 11h20
  3. [AC-2010] Mailing Automatique en fonction de la date
    Par FishAndChips dans le forum VBA Access
    Réponses: 10
    Dernier message: 11/09/2012, 16h44
  4. [MySQL] Envoi mail auto en fonction date dans base de donnée
    Par calitom dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 30/06/2008, 15h17
  5. Réponses: 2
    Dernier message: 25/09/2007, 20h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo