Envoi auto de mails avec pièce jointe fonction du destinatai

Résolu
cocotier_35400 Messages postés 7 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonsoir,

Pourriez vous me proposer une macro excel (je n'y connais vraiment rien en codage VBA) permettant l'envoi automatique de mails avec une pièce jointe qui est fonction du destinataire , ceci via Gmail

Exemple :

Destinataire 1 : envoi du fichier "toto1.doc"

Destinataire 2 : envoi du fichier "toto2.doc"

etc

Les adresses des destinataires sont contenues dans une colonne Excel

Les adresses sources des fichiers à envoyer pourrait être contenues dans une autre colonne 

Merci de votre aide

10 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    Souhaites-tu te former en VBA?

    Utilises-tu, ou es-tu prêt à utiliser Microsoft Outlook pour envoyer ces messages?

    0
  2. Cocotier_35400
     

    Bonjour 
    Merci pour la réponse 
    Pourquoi pas une formation, bien que je ne connaisse pas le degré dr difficultés de ce langage informatique.
    Je fais partie d'une association d'environ 200 adhérents et nous envoyons à chacun des adhérents un fichier de ré adhésion personnalisé.
    C'est éviter cet envoi manuel de 200 mails que j'avais pensé à un envoi automatique avec une macro Excel.
    Concernant Outlook, nous souhaiterions éviter un compte supplémentaire de messagerie, nous avons , pour l'association, un compte gmail et un compte Thunderbird que nous eu avec l'achat du domaine internet pour notre site Web.
    Est il indispensable et cela est ce plus facile de coder en utilisant Outlook ?
    Pour info nous utilisons une version d'Excel de 2007 et ne comptons pas investir dans une version Office récente.
    Cordialement 

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Microsoft Outlook est un logiciel de messagerie, il peut parfaitement s'utiliser avec un compte gmail.  L'utilisation de ce logiciel n'implique nullement l'utilisation d'un compte de messagerie outlook.

      Le plus facile, et de très loin, est d'avoir Excel et Outlook sur le même ordi, et que Outlook soit configuré pour pouvoir envoyer des mails en utilisant le compte gmail.

      L'étape suivante sera d'utiliser le VBA de Excel pour envoyer un message de test via Outlook. 

      C'est relativement simple, parce que Outlook a aussi son VBA, et que les VBA peuvent collaborer entre eux.

      0
  3. cocotier_35400 Messages postés 7 Statut Membre
     

    A te lire cela à l'air simple
    Pour ma part je n'y connais rien et cela m'a l'air très compliqué ("comment envoyer un message de test via Outlook, mes VBA peuvent collaborer entre eux " etc ...).
    Comment configure-t-on Outlook et Excel , etc ... ?

    D'autre part Microsoft Outlook est payant après une période de test de 30 jours

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Il est peut-être préférable, alors, de continuer à utiliser des méthodes que tu connais.

      0
  4. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     

    Bonjour,

    Je ne connais pas VBA mais envoyer des emails est réalisable assez facilement via un script .bat

    Il suffirait de convertir ton tableau Excel en fichier .csv pour pouvoir le traiter via le script.

    Fais-moi signe si tu es partant.

    Bonne journée.



    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ozone_ Messages postés 1823 Statut Membre 511
     

    Bonjour,

    Il existe cette possibilité avec Outlook comme le dit yg_be mais évidemment il faut avoir la suite Office qui comprends au moins Excel et Outlook

    https://www.cjoint.com/c/LHhmResdRXw

    Voilà un exemple de fichier que j'ai repris sur https://www.rondebruin.nl/error.htm adapté pour le besoin.

    Sub Send_Files()
    
    'Récupéré sur : http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
    
    Dim OutApp As Object
    Dim OutMail As Object
    Dim sh As Worksheet
    Dim cell As Range
    Dim FileCell As Range
    Dim rng As Range
    
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
    Set sh = ActiveSheet
    
    Set OutApp = CreateObject("Outlook.Application")
    
    For Each cell In sh.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
    
        ' Chemin du fichier dans la colonne B
        Set rng = sh.Cells(cell.Row, "A").Range("B1:Z1")
        
        ' Vérifie si c'est bien un String format e-mail
        If cell.Value Like "?*@?*.?*" And _
        Application.WorksheetFunction.CountA(rng) > 0 Then
            Set OutMail = OutApp.CreateItem(0)
            
            With OutMail
                .to = sh.Cells(cell.Row, 1).Value
                .Subject = sh.Cells(cell.Row, 3).Value
                .Body = sh.Cells(cell.Row, 4).Value
                
                For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
                    If Trim(FileCell.Value) <> "" Then
                        If Dir(FileCell.Value) <> "" Then
                            .Attachments.Add FileCell.Value
                        End If
                    End If
                Next FileCell
                
                .Display 'Or use .Display/Send
            End With
            
            Set OutMail = Nothing
        End If
    Next cell
    
    Set OutApp = Nothing
    
    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With
    
    End Sub
    

    0
  7. cocotier_35400 Messages postés 7 Statut Membre
     

    Bonjour ozone_

    Merci pour le fichier .xlm
    J'ai réussi à installer Outlook sur mon PC à partir d'un CD que je possédais (version 2007)
    J'ai configuré Outlook avec mon compte de messagerie SFR, la synchro s'est bien passée.
    Par contre lorsque je lance la macro Send_Files j'obtiens le code erreur : -2147221164 (80040154)
    Classe non enregistrée ???

    En mode débogage la macro s'arrête à Set OutApp = CreateObject("Outlook.Application")

    Merci encore pour ton aide

    0
    1. ozone_ Messages postés 1823 Statut Membre 511
       

      Je pense que le problème doit venir d'Outlook qui date de 2007 et qui n'a pas toutes les dépendances requises pour faire fonctionner ce code.

      N'ayant pas cette version, je ne pourrai malheureusement pas t'aider pour la suite ...

      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Tu as redémarré l'ordi après installation de Outlook?

      0
  8. cocotier_35400 Messages postés 7 Statut Membre
     

    Je viens de redémarrer l'ordi, idem, il y a le même message d'erreur.

    Tans pis on se passera de cette fonctionnalité, je ne voudrais pas monopoliser votre temps sur ce problème

    Merci à tous pour votre aide

    Cordialement

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Si tu veux persévérer...

      Dans Excel, tu fais ALT+F11 pour ouvrit l'éditeur VBA.
      Ensuite, dans le menu "outils", tu choisis "références".
      Dans la longue liste de références, vois-tu "Microsoft Outlook ... Object Library"?

      0
  9. cocotier_35400 Messages postés 7 Statut Membre
     

    La case n'était pas à Y, je l'ai mise, redémarrer le PC, le problème est toujours là

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Si tu as coché la référence dans la liste, et que cette coche est toujours présente quand tu rouvres Excel, remplace alors

      Dim OutApp As Object
      
      '...
      
      Set OutApp = CreateObject("Outlook.Application")

       par

      Dim OutApp As Outlook.Application
      
      ' ...
      
      Set OutApp = new Outlook.Application
      0
  10. cocotier_35400 Messages postés 7 Statut Membre
     

    Même problème

    Merci pour votre patiente mais on peut en rester là

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Peux-tu alors marquer la discussion comme résolue?

      0
  11. cocotier_35400 Messages postés 7 Statut Membre
     

    C'est OK pour moi
    J'ai beau chercher, je n'ai pas trouvé où fermer la discussion (??)

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      via les ... en dessous de ta question de départ.

      0