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 :

Problème avec alerte mail via outlook VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut Problème avec alerte mail via outlook VBA
    Bonjour,
    j'ai un soucis et je vous prie de m'aider svp. En fait j'ai fait une alerte mail qui me prévient de l'arrivée d'une date, j'ai crée une macro pour cela(elle fonctionne très bien) que j'ai associé a l'ouverture de mon fichier. Mais en fait je voudrais que cet alerte m'envoi seulement 2 fois le mail d'alerte pour chaque date qui approche. Plus précis je ne voudrais pas qu'elle envoi un mail ( si ces mail concernent la même échéance) à chaque fois que j'ouvre le fichier mais seulement deux fois.
    Voici mon code. Est ce que vous pouvez me proposer des solutions de modifications pour cela SVP???
    Merci d'avance

    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
    42
    Private Sub Workbook_Open()
    ' inser2 dans thisworkbook
     
    '
     
    Dim Ws As Worksheet
    Dim Mbody As String 'le corps du message
    Dim desti As String
    Dim sujet As String
    Dim i As Integer
    Dim Der_lig As Integer
     
    On Error GoTo ende
    sujet = "SUJET ALERTE"
    desti = "MAIL DU DESTINATAIRE"
    'ccto = "xxxxxxx"
    Mbody = "CORPS DU MAIL" & vbCrLf & "cordialement" & vbCrLf & "XXXXXX"
    Set Ws = Sheets("Feuil1") 'ActiveSheet
     Der_lig = Range("D65000").End(xlUp).Row + 1
        For i = 1 To Der_lig
            ' -2 < Date livraison >= 3
            If Cells(i, "G").Value <= Date + 2 And Cells(i, "G").Value > Date - 2 Then     'And Cells(i, "G").Value <> ""
                Mbody = Mbody & (Cells(i, "D").Value) '& " sa date de livraison est prévu le " & (cellule) '& vbCrLf & "Cordialement" & vbCrLf & "Alerte Automatique"   'pour chercher le nom du rapport
            'Else: Mbody = "Pas de dates de livraison proches"
            End If
        Next i
    Set app = CreateObject("outlook.application")
    Set itm = app.createitem(0)
        With itm
            .To = desti 'l'adresse du destinataire
            .cc = ccto  'l'adresse de l'envoyeur
            .Subject = sujet 'sujet du mail
            .body = Mbody  'le corps du message
            '.AddAttachment ("c:cheminfichier.ext") 'Pour éventuellement joindre un fichier
            '.Cc = "LeCC" & Chr(64) & "hotmail.com" 'Pour mettre quelqu'un en CC
            .Display
            '.Send
        End With
    Set app = Nothing
    Set itm = Nothing
    ende:
    End Sub

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Par défaut
    Bonjour pasterlouis,

    je ne suis pas sûr d'avoir bien saisi tout le problème mais si j'ai bien compris tu veut que l'envoi des mails s'effectue une seule fois par jours au max ?

    Pour cela je te conseille d'utiliser une cellule de ta feuille pour stocker la date du dernier traitement.

    Si la date du dernier traitement est différente de la date du jour tu fais ton traitement puis à la fin tu update ta date de dernier traitement sinon ben tu fais rien

    donc juste un if à rajouter

    Voilà ce que ça donne :
    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
    42
    43
    44
    45
    Private Sub Workbook_Open()
    ' inser2 dans thisworkbook
     
    '
     
    Dim Ws As Worksheet
    Dim Mbody As String 'le corps du message
    Dim desti As String
    Dim sujet As String
    Dim i As Integer
    Dim Der_lig As Integer
     
    If Range("xxxxxxx") <> Date Then
        On Error GoTo ende
        sujet = "SUJET ALERTE"
        desti = "MAIL DU DESTINATAIRE"
        'ccto = "xxxxxxx"
        Mbody = "CORPS DU MAIL" & vbCrLf & "cordialement" & vbCrLf & "XXXXXX"
        Set Ws = Sheets("Feuil1") 'ActiveSheet
         Der_lig = Range("D65000").End(xlUp).Row + 1
            For i = 1 To Der_lig
                ' -2 < Date livraison >= 3
                If Cells(i, "G").Value <= Date + 2 And Cells(i, "G").Value > Date - 2 Then     'And Cells(i, "G").Value <> ""
                    Mbody = Mbody & (Cells(i, "D").Value) '& " sa date de livraison est prévu le " & (cellule) '& vbCrLf & "Cordialement" & vbCrLf & "Alerte Automatique"   'pour chercher le nom du rapport
                'Else: Mbody = "Pas de dates de livraison proches"
                End If
            Next i
        Set app = CreateObject("outlook.application")
        Set itm = app.createitem(0)
            With itm
                .To = desti 'l'adresse du destinataire
                .cc = ccto  'l'adresse de l'envoyeur
                .Subject = sujet 'sujet du mail
                .body = Mbody  'le corps du message
                '.AddAttachment ("c:cheminfichier.ext") 'Pour éventuellement joindre un fichier
                '.Cc = "LeCC" & Chr(64) & "hotmail.com" 'Pour mettre quelqu'un en CC
                .Display
                '.Send
            End With
        Set app = Nothing
        Set itm = Nothing
        Range("xxxxxxxxxx") = Date ' Update '
    End If
    ende:
    End Sub
    tu remplace range("xxxxxxxx") par ta cellule choisie

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut
    Merci beaucoup Halo2550.
    En fait j'ai pas bien compris ce que tu a dit. Je devrai seulement insérer comme tu l'a fait dans mon code ou il y'a une condition comme quoi si ce qui est contenu dans cette cellule est = date alors ne pas envoyé. Si c'est cela je n'ai pas d'idée de comment je ferai cette condition

  4. #4
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2013
    Messages : 75
    Par défaut
    Merci beaucoup Halo2550
    mon pb est réglé

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

Discussions similaires

  1. [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
  2. [AC-2007] Problème pour l'envoi de mail via outlook express
    Par enzo7818 dans le forum VBA Access
    Réponses: 0
    Dernier message: 12/08/2010, 15h47
  3. Réponses: 4
    Dernier message: 02/02/2009, 22h40
  4. Envoi d'un mail via outlook avec l'option de vote
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2008, 11h23
  5. [VBA] Envoie de mail via outlook
    Par sperchey dans le forum Access
    Réponses: 7
    Dernier message: 21/02/2007, 16h35

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