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 :

[VBA-E]Envoi de mail journalier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut [VBA-E]Envoi de mail journalier
    Bonjour,

    j'ai cette procédure avec moi :

    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
    41
    Sub START2()
    Dim fLag, newHour, newMinute, newSecond, waitTime
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + 1
    waitTime = TimeSerial(newHour, newMinute, newSecond)
    deb1:
    If Time <= "09:30:00" Then
        GoTo mail1
    ElseIf Time <= "14:30:00" Then
        GoTo mail2
    ElseIf Time <= "18:30:00" Then
        GoTo mail3
    Else
        GoTo nolaunch
    End If
     
    mail1:
    While Time < "09:30:00"
        DoEvents
    Wend
    'Application.Wait "09:30:01"
    Call SendMeEmail
    mail2:
    While Time < "14:30:00"
        DoEvents
    Wend
    'Application.Wait "14:30:01"
    Call SendMeEmail
    mail3:
    While Time < "18:30:00"
        DoEvents
    Wend
    'Application.Wait "18:30:01"
    Call SendMeEmail
    nolaunch:
    While Time > "18:30:00"
        DoEvents
    Wend
    GoTo deb1
    End Sub
    qui me permet d'envoyer un mail 3 fois par jour cette procédure marche très bien hein le seul problème est que cette procédure bouffe tout le process et que donc quand je la lance dans les processus ça prend énormément de place et vu que je travaille sur d'autres fichiers Excel ben ça devient plus long du coup...Comme vous le voyez j'ai essayé de mettre un Wait mais le problème du Wait c'est qu'il arrete carrément tous les process Excel, donc si je suis en train de travailler sous Excel, bah ya tout qui se coupe pendant l'envoi du mail
    Alors ma question c'est est-ce qu'il existe un moyen de façon à ce que cette macro fonctionne qu'à l'heure indiquée ? et non qu'elle tourne tout le temps jusqu'a à l'heure de l'envoi ?

    Pour information j'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub START2()
    deb1:
    If Time < "09:30:00" Or Time > "18:30:00" Then
        Application.OnTime TimeValue("09:30:00"), "SendMeEmail"
    End If
    If Time > "09:30:00" And Time < "14:30:00" Then
        Application.OnTime TimeValue("14:30:00"), "SendMeEmail"
    End If
    If Time > "14:30:00" And Time < "18:30:00" Then
        Application.OnTime TimeValue("18:30:00"), "SendMeEmail"
    End If
    GoTo deb1
    End Sub
    Mais à priori ya un bin's à cette procédure et ça marche pas tout le temps sachant qu'il faut que le mail soit donc envoyé 3 fois par jour aux heures indiquées, et tous les jours du lundi au vendredi

    Vala merci beaucoup pour votre aide si quelqu'un a une solution
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Personne n'a de solution adapté à mon soucis ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    1. Qu'est-ce qu'il ne marche pas dans ta 2° méthode..? tu as bien rajouter un appel à Start2 à la fin de ta procédure SendMeMail..
    2. Que fait la procédure SendMeMail.. d'ou prends t'elle les données à envoyer..? est tu obligé de la laisser sous Excel..? tu pourrai peu-être utiliser les tâches planifiés de Windows pour lancer un ta macro..?

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    1) le problème de la deuxième procédure est qu'elle ne tourne qu'une fois : une fois qu'on la lance elle ne boucle pas du coup ça envoie un fichier et après vala c'est fini donc il faut la relancer...
    2) Bah la procédure SendMeMail envoie un mail avec un objet, à plusieurs destinataires avec un fichier Excel attaché

    EDIT : pour répobdre à ta question oui je suis obligé de la laisser sous Excel, car de une elle es utilisé grâce à un bouton dans une feuille Excel et de 2 en fait sur cette feuille il y a plusieurs bouton, un qui lance donc cette macro au dessus, un qui arrete la macro, et une autre qui envoie le mail dès que l'on clique sur le bouton
    J'espère m'etre fait comprendre
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par bbil
    tu as bien rajouter un appel à Start2 à la fin de ta procédure SendMeMail.
    ou si tu ve pas toucher à ta procédure SendMeMail .. tu crée une nouvelle procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     sub SenMeMailBoucle
        SendMeMAil
        Start2
    end sub
    et tu modifie Start2 pour qu'il fasse appell à cette procédure..

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Arf pardon j'avais pas vu cet élément de réponse
    Mais je te confirme que oui à la finde la procédure SendMeMail il y a un Call Start2
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    j'avais pas vu le goto dans ton start2 (le 2°) .., enléve le ! et remplace par exemple tes > par des >= ... pour éviter... le cas ou tu tombe à la seconde "00.."

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2013, 16h33
  2. [XL-2007] VBA Excel - envoi de mail via Outlook
    Par Seg_B dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/10/2011, 12h08
  3. macros et vba excel envoi de mails multiples
    Par dembasba dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/09/2011, 21h41
  4. [XL-2003] Une question concernant mon module VBA pour envoi des mail en masse.
    Par dariyoosh dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/10/2010, 16h03
  5. [VBA-A] Envoi de mail sans passer par Outlook ou autre.
    Par genius99 dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/02/2006, 07h50

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