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

Résolu/Fermé
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022 - 6 août 2022 à 23:48
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 9 août 2022 à 09:50

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

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 août 2022 à 07:04

bonjour,

Souhaites-tu te former en VBA?

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

0
Cocotier_35400
7 août 2022 à 09:19

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
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 août 2022 à 09:45

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
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
7 août 2022 à 12:31

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
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 août 2022 à 13:13

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

0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
7 août 2022 à 14:32

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

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

Posez votre question
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
Modifié le 7 août 2022 à 14:45

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
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
7 août 2022 à 18:51

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
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
8 août 2022 à 13:38

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
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
8 août 2022 à 15:43

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

0
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
8 août 2022 à 18:30

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
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
8 août 2022 à 18:39

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
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
8 août 2022 à 20:00

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

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
8 août 2022 à 20:08

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
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
8 août 2022 à 22:04

Même problème

Merci pour votre patiente mais on peut en rester là

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
9 août 2022 à 07:48

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

0
cocotier_35400 Messages postés 7 Date d'inscription samedi 6 août 2022 Statut Membre Dernière intervention 9 août 2022
9 août 2022 à 09:12

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

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
9 août 2022 à 09:50

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

0