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 :

Alerte email à date précise


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ecole d'ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Alerte email à date précise
    Bonjour,

    Je suis nouvelle et relativement novice en codage VBA et j'ai un problème que j'essaie de résoudre depuis quelques jours. J'aurai donc souhaité solliciter votre aide..
    J'ai cherché sur ce forum et sur d'autres des réponses pouvant se rapprocher de mon problème mais j'ai été incapable de pouvoir me dépatouiller avec les différents codes trouvés..

    J'ai un fichier avec différentes demandes de stockage, pour chaque demande il y a différents critères à remplir et notamment une date de fin de stockage. Cette date de fin est très importante car elle est assimilée à une sorte de contrat.
    J'aurai souhaité créer un code vba dans lequel cette date serait mise en parallèle avec la date d'aujourd'hui (=AUJOURDHUI()) et :
    - si la date de fin de stockage est <= à la date d'aujourd'hui alors excel enverrait un email pour nous dire de relancer le propriétaire.
    - si la (date de fin de stockage - la date d'aujourd'hui) est < à 15 jours, excel enverrait un email pour nous prévenir que la fin du contrat se rapproche.

    J'ai déjà fait des mises en formes conditionnelles pour spécifier chacun des cas mais j'aurai vraiment besoin de créer des alertes emails.

    Je travaille sur excel 2010 et la messagerie utilisée est outlook.
    J'ai vraiment besoin d'aide, j'espère que vous pourrez me l'apporter.

    Demandes-stockage.xlsx

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Il faudrait savoir comment tu veux gérer ces alertes.
    Ça peut démarrer quand tu ouvres le classeur (Workbook_Open) ou sur l'action d'un bouton, disons...

    Dans l'ensemble, ça pourrait ressembler à ça
    Tu boucles les dates et tu les vérifies.
    Si les conditions sont celles que tu veux, les courriels sont créés.
    Par contre, ça prend une liste de personnes à qui envoyer. Ça c'est toi qui devra gérer.
    Moi j'ai l'habitude de les mettre dans une feuille en colonne, selon le type d'envoi.
    Même chose pour le corps du message et le sujet...

    J'ai mis un exemple pour la relance, et ce serait le même principe pour l'alerte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Alerte()
        Dim I As Long, nbLignes As Long
     
        nbLignes = Sheets("owssvr").Cells(Rows.Count, "L").End(xlUp).Row 'choisir autre colonne que L au besoin
        For I = 3 To nbLignes
            If Range("L" & I) < Date Then EnvoyerRelance
            If Range("L" & I) - Date < 15 Then EnvoyerAlerte
        Next
    End Sub
     
    Sub EnvoyerRelance()
        Dim I As Long, nbLignes As Long
        Dim Liste As String
        Dim OutlookApp As Object
        Dim NewMail As Object
        Dim Rep As Integer
     
        Rep = MsgBox("Voulez-vous envoyer une relance ?", vbYesNo + vbInformation, "Alerte")
        If Rep = vbNo Then Exit Sub
     
        'Lire les adresses dans la feuille EMail en colonne A ***** à adapter *****
        nbLignes = ThisWorkbook.Sheets("EMail").Cells(Rows.Count, "A").End(xlUp).Row
        For I = 2 To nbLignes
            Liste = Liste & ThisWorkbook.Sheets("EMail").Range("A" & I) & ";"
        Next
     
        Set OutlookApp = CreateObject("Outlook.Application")    'objet Outlook
        Set NewMail = OutlookApp.CreateItem(0)                  'objet courriel
        NewMail.Display                                         'permet d'ajouter la signature automatique
        NewMail.To = Liste                                      'liste d'envoi
    '    NewMail.CC = MailCC                                    'liste en CC si besoin
        NewMail.Subject = "Le titre que tu veux mettre"
    '    NewMail.HTMLBody = "<HTML><BODY><PRE><FONT SIZE=2>" & "Le corps du message que tu peux prendre dans une feuille" & "</FONT></PRE></BODY></HTML>" & NewMail.HTMLBody
    '    NewMail.Attachments.Add "Chemin et nom du fichier"     'Fichier joint si nécessaire
        NewMail.Display                                         'Affiche le message prêt à l'envoi
    '    NewMail.Send                                           'Envoie le message sans action de ta part
     
        Set NewMail = Nothing
        Set OutlookApp = Nothing
    End Sub

  3. #3
    Membre habitué
    Femme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ecole d'ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut MERCI !!!
    Tout d'abord merci, je suis en train de faire les modifications.
    Si j'ai bien compris dans le code vous avez demandé à VBA d'aller chercher dans une feuille appelée "EMail", les adresses emails sur lesquelles l'email de relance sera envoyé dans le cas où l'on dit "oui".

    Je viens de le tester et ça fonctionne. J'ai cependant une question, avec votre code, une fois avoir cliqué sur "oui", Outlook s'ouvre et me propose d'envoyé un message de relance à qui je veux (c'est exactement l'idée que je souhaitais je n'avais même pas pensé à le faire), mais serait-il possible qu'il m'envoi directement un email à moi (ou quelqu'un d'autre dans la feuille "EMail") ?

    Je m'explique, pour les mêmes raisons soit quand la date est dépassée ou proche (soit environ 15 jours de la fin), Excel m'envoi un email pour me rappeler de ne pas oublier que ce contrat a pris fin ou est sur le point de prendre fin ?

    Je vous remercie énormément pour votre réponse, vraiment merci beaucoup !

  4. #4
    Membre habitué
    Femme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ecole d'ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Au temps pour moi..
    Je viens de voir que le message peut s'envoyer automatiquement que vous l'aviez mis à la fin du code.

    Merci mille fois pour votre aide !

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    En fait, tu peux utiliser plusieurs colonnes pour les listes d'envois.
    Dans une ce serait pour un message de relance, dans une autre peut-être des adresses à mettre en CC
    Dans une autre celles pour les alertes,...
    Tu peux aussi mettre une autre colonne pour le texte et/ou le sujet que tu veux inclure...

    Et oui, à la fin du code, j'ai mis .Display qui ne fait qu'afficher le courriel, prêt à envoyer.
    Tu peux mettre cette ligne en commentaire et utiliser .Send qui, elle, enverra le courriel sans action de ta part.
    J'aime bien utiliser .Display jusqu'à ce que tout fonctionne bien. Ensuite j'utilise .Send

    Bonne continuation !

  6. #6
    Membre habitué
    Femme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ecole d'ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Tout fonctionne !
    D'accord, merci beaucoup pour votre aide, encore une fois !

    Bonne continuation, et encore encore merci.

  7. #7
    Membre habitué
    Femme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ecole d'ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut C'est surement bête mais..
    Comment est-il possible de synchroniser le lancement de la macro dès l'ouverture du fichier excel ?

    Ou encore, est-il possible que la macro se lance sans l'ouverture du fichier ? (dès que le poste s'ouvre)

    Je suis m'excuse pour cette nouvelle demande.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/08/2006, 15h57
  2. Exécuter un traitement à des dates précises
    Par Commodore dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 08/08/2006, 09h42
  3. Lancé une procédure stockée à une date précise
    Par Oberown dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/07/2006, 17h23
  4. [Mail] Email à une date précise
    Par CICG-Net dans le forum Langage
    Réponses: 7
    Dernier message: 02/03/2006, 00h12
  5. Renvoyer une date précise
    Par kilyn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/10/2004, 10h11

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