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 :

envoi automatique de messages avec Outlook


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut envoi automatique de messages avec Outlook
    Ce que je voudrais faire :
    - envoyer des messages personnalisés à partir d'une séquence VBA s'appuyant sur une liste de données sous Excel

    Ce que j'ai fait :
    - écrire le code en utilisant deux possibilités : Sendkeys et liaison anticipée (cf. solutions proposées p664 du livre de Walkenbach, en remplaçant le "%s" par "%v" pour la solution Sendkeys)

    Ce qui se passe :
    - les deux solutions fonctionnent très bien et les messages sont effectivement expédiés...

    Ce qui coince :
    - ... mais ils n'arrivent nulle part !

    Ce que j'ai essayé :
    - dans la solution liaison anticipée, je reçois un message d'alerte venant d'Outlook pour signaler qu'un programme essaie d'envoyer un message et pour demander l'accord, avec Sendkeys aucun message. J'ai essayé de désactiver Norton Sécurité (après m'être contenté tout d'abord de désactiver la seule partie relative aux messages entrants et sortants), mais cela ne change rien

    Ce qui est curieux :
    - les messages apparaissent bien dans ma boîte Messages envoyés. Si je les reprends et essaie de les transférer directement à partir de Outlook le résultat est le même : ils partent (analysés par Norton sans provoquer le moindre message d'erreur) mais n'arrivent nulle part...

    Ce que j'espère :
    - qu'une âme sensible et compatissante, portée par un individu plus compétent que moi (ce qui ne devrait pas être trop difficile car je débute en VBA), vienne à mon secours !

    Ce que je promets :
    - une reconnaissance éternelle (ou presque) à qui pourra m'aider !

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour kouki63

    J'ai personnellement eu le meme probleme, j'envoyais des classeurs et la boite de reception outlock me les refusait

    mon probleme (pas forcement le tien), venait de la protection d'outlock qui des qu'il voyait une macro dans un classeur le jetait.
    n'ayant pas l possiilité de modifier le paametrage outlock chez le receveur, j'ai donc céé des classeurs sans macro, uniquement avec les données

    et voci le code que j'utilise

    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
    Sub exportPiecesJointes_boiteReception()
        Dim outlookApp As New Outlook.Application
        Dim olSpace As Outlook.nameSpace
        Dim olInbox As Outlook.MAPIFolder
        Dim pceJointe As Outlook.Attachment
        Dim j As Integer, i As Integer, x As Integer
     
        Set outlookApp = CreateObject("Outlook.Application")
        Set olSpace = outlookApp.getNamespace("MAPI")
        Set olInbox = olSpace.getDefaultFolder(olFolderInbox)
     
         'boucle sur tous les messages de la boite de réception
        For j = 1 To olInbox.Items.Count
            If Not olInbox.Items.Item(j).Attachments.Count = 0 Then
                For i = 1 To olInbox.Items.Item(j).Attachments.Count
     
                    Set pceJointe = olInbox.Items.Item(j).Attachments(i)
     
                    x = x + 1
                    pceJointe.SaveAsFile _
                        "C:\Documents and Settings\" & x & "_" & pceJointe
     
                    Set pceJointe = Nothing
                Next i
            End If
        Next j
    End Sub
    bonne journée

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut blocage Excel -> Outlook lié à Norton ?
    Merci tout d'abord pour cette réponse.

    En fait les messages que je souhaite envoyer ne contiennent que fort peu de choses : l'indication du nom, un poste obtenu dans le cadre d'un mouvement et une formule de salutation. Aucune pièce jointe pour laquelle je comprendrai un blocage de sécurité.

    Nouveauté depuis mon dernier message : j'ai réussi à faire passer des envois qui sont arrivés sur un Mac ! Je pense vraiment avoir un pb lié à une protection excessive, mais je ne vois guère sur quoi jouer...

    Pour info je recopie ci-dessous le code que j'utilise :

    Liaison anticipée :

    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
    Sub Email_sol1()
        Dim OutlookApp As Outlook.Application
        Dim MItem As Outlook.MailItem
        Dim cell As Range
        Dim Subj As String
        Dim EmailAddr As String
        Dim Destinataire As String
        Dim Poste As String
        Dim Msg As String
     
        Set OutlookApp = New Outlook.Application
     
        Subj = "Mouvement"
        Destinataire = ActiveCell.Value
        ActiveCell.Offset(0, -1).Range("A1").Select
        EmailAddr = ActiveCell.Value
        ActiveCell.Offset(0, -1).Range("A1").Select
        Poste = ActiveCell.Value
     
        Msg = "Bonjour " & Destinataire & vbCrLf & vbCrLf
        Msg = Msg & "Bla Bla Bla..." & Poste & vbCrLf
        Msg = Msg & "Signé PR"
     
        Set MItem = OutlookApp.CreateItem(olMailItem)
        With MItem
            .To = EmailAddr
            .Subject = Subj
            .Body = Msg
            .Send
        End With
     
    End Sub
    Sendkeys :

    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
    Sub Email_sol2()
        Dim cell As Range
        Dim Subj As String
        Dim EmailAddr As String
        Dim Recipient As String
        Dim Bonus As String
        Dim Msg As String
        Dim HLink As String
     
        Destinataire = ActiveCell.Value
        ActiveCell.Offset(0, -1).Range("A1").Select
        EmailAddr = ActiveCell.Value
        ActiveCell.Offset(0, -1).Range("A1").Select
        Poste = ActiveCell.Value
     
        Msg = "Bonjour " & Destinataire & "%0A"
        Msg = Msg & "Bla Bla Bla... " & Poste & "%0A"
        Msg = Msg & "Signé PR"
     
        HLink = "mailto:" & EmailAddr & "?"
        HLink = HLink & "subject=" & Subj & "&"
        HLink = HLink & "body=" & Msg
     
        ActiveWorkbook.FollowHyperlink HLink
        Application.Wait (Now + TimeValue("0:00:02"))
        SendKeys "%v", True
     
    End Sub

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut messages générés sous excel et transmis vers Outlook
    Contrairement à ma précédente hypothèse, le problème ne vient pas de Norton (ou pas seulement de ...). Je viens de le remplacer par BitDefender et le résultat n'est hélas pas meilleur.

    Nouvelle hypothèse : le message envoyé (je le vois effectivement "partir") possède une caractéristique qui pose problème... mais laquelle ???

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour


    Si tu utilises Office 2002 (et ultérieur) , le message d'alerte est normal:

    http://support.microsoft.com/?id=290500



    La solution de remplacement consiste à utiliser l'ojet CDO:

    http://support.microsoft.com/default.aspx?kbid=286430

    http://excel.developpez.com/sources/...#HyperlienMail

    http://access.developpez.com/faq/?pa...ailPieceAttach



    En Il existe aussi un utilitaire nommé ClickYes. Fait une recherche sur le net (non testé).



    michel

Discussions similaires

  1. probleme d'envois de message avec outlook ?
    Par delphino7 dans le forum Outlook
    Réponses: 0
    Dernier message: 12/10/2014, 20h08
  2. Problème d'envoi des messages avec outlook
    Par titedeveloppeuse dans le forum Outlook
    Réponses: 4
    Dernier message: 20/05/2011, 00h50
  3. PB d'envois de messages avec Outlook Express
    Par Lucien Nice dans le forum Outlook Express / Windows Mail
    Réponses: 1
    Dernier message: 27/11/2009, 08h57
  4. pb envoi message avec outlook et cegetel
    Par francky57 dans le forum Outlook
    Réponses: 3
    Dernier message: 30/01/2009, 19h37
  5. envois d'un mail avec outlook express en vb
    Par trefles dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/01/2006, 18h27

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