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

Access Discussion :

Envoyer plusieurs pièces jointes par mail


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2024
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Envoyer plusieurs pièces jointes par mail
    Bonjour à tous.

    Je cherche à envoyer automatiquement par mail toutes les pièces jointes du folder où se trouve la DB Access se terminant par "_P.csv".

    Pour l'instant, j'ai un code VBA "classique qui ressemble à cela (https://www.experts-access.com/micro...en-vba-access/).

    Le problème est que je dois faire une ligne Attachements.Add par pièce jointe et que cette liste de pièces jointes est censée évoluée dans le temps. Et j'aimerais éviter d'aller dans le code pour modifier ma liste de pièces jointes.

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut Procédure générique
    Bonjour,

    Vous pouvez à nouveau créer une procédure générique dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub attacherPJ(objOutlookMsg As Object, dossier As String)
        ' dossier : "c:\Mon_Dossier\
     
        fichier = Dir(dossier)
     
        ' parcours des fihciers du dossier
        While fichier <> ""
            cheminPJ = dossier & fichier ' chemin du fichier
            objOutlookMsg.Attachments.Add cheminPJ ' ajout de la PJ au mail
            fichier = Dir() ' fichier suivant
        Wend
     
    End Sub
    Ensuite vous l'exécuter dans votre code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '...
    objOutlookMsg.Subject = TxtSujet
    objOutlookMsg.Body = TxtBody
    '...
    dossierPJ = "...\_P.csv\"
    ' dossierPJ = currentproject.path & \_P.csv\"
     
    attacherPJ objOutlookMsg, dossierPJ
     
    '...
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2024
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse, mais je rencontre quelques problèmes avec votre code.

    Ici, ce que j'ai recopié de votre code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Sub AttacherPJ(objOutlookMsg As Object, dossier As String)
    Dim Fichier As String, CheminPj as String 'Ajout car message d'erreur variable non définie
     
        dossier = CurrentProject.Path & "\"
        Fichier = Dir(dossier)
     
        While Fichier <> ""
            CheminPJ = dossier & Fichier
            objOutlookMsg.Attachements.Add CheminPJ
            Fichier = Dir()
        Wend
     
    End Sub
    Ici le code que j'utlise pour l'envoi du mail
    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
     
    Private Sub Command239_Click()
     
    Dim objOutlook As Object, olmail As Object, objOutlookMsg As Object, DossierPJ As String 'Ajout car message d'erreur variable non définie
     
    Set objOutlook = CreateObject("Outlook.Application")
    Set objOutlookMsg = objOutlook.CreateItem(0)
     
    DossierPJ = CurrentProject.Path & "\_P.csv"
     
    AttacherPJ objOutlookMsg, DossierPJ
    With objOutlookMsg
        .To = EmailsDestinataires("Destinataires", "Mail", "To")
        .Cc = EmailsDestinataires("Destinataires", "Mail", "Cc")
        .Subject = "Files for xxx"
        .Body = "Please find attached the files for xxx"
        .display
     
    End With
    End Sub
    En faisant, tourner la macro, j'ai un message d'erreur me disant que "DossierPJ" n'est pas défini. Je l'ai donc rajouté en Srring.
    Je refais tourner le code, et j'ai encore variable non définie sur "Fichier" dans le 1er code. Je le rajoute alors dans le code en String.
    Je refais tourner le code, et j'ai encore variable non définie sur "CheminPJ" dans le 1er code. Je le rajoute alors dans le code en String
    Je refais tourne le code, et j'ai un message d'erreur "Run time error 438. Object doesn't support this property or method. Et il me surligne "objOutlookMsg.Attachements.Add CheminPJ"

    Est-ce que vous auriez une idée de comment résoudre le problème ?
    Je me pose aussi une question. Est-ce correct que DossierPJ = CurrentProject.Path & "\_P.csv" ? Dans mon current folder, j'ai plusieurs fichier dont ceux se finissant par _P.csv. (ex. aaa_P.csv, bbb_P.csv, aaaabbbb;csv, cccddd.xlsx, etc).

    Merci pours vos réponses.

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objOutlookMsg.Attachments.Add CheminPJ
    Attachments et non Attachements (terme anglais)
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2024
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour la correction.
    Maintenant cela tourne bien, mais le code met tous les fichiers du folder en pièce jointe pas uniquement ceux se finissant par "_P.csv".
    Sauriez-vous comment corriger cela ?
    Merci encore pour votre aide jusqu'à maintenant.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut
    Dans la boucle de parcours des fichiers il faut mettre une condition pour ne sélectionner que ces fichiers pour l'attachement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    '...
        While Fichier <> ""
            If Fichier Like "*_P.csv" Then
                CheminPj = dossier & Fichier
                objOutlookMsg.Attachements.Add CheminPj
            End If
            Fichier = Dir()
        Wend
    '...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2024
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour votre réponse rapide.
    Cela fonctionne parfaitement maintenant.

Discussions similaires

  1. Envoyer une pièce jointe par mail
    Par gautier1er dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 17/07/2018, 15h46
  2. [XL-2010] Macro Excel pour envoyer des pièces jointes par mail
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/10/2013, 18h12
  3. Réponses: 2
    Dernier message: 20/03/2013, 12h59
  4. Envoyer un fichier joint par mail ?
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 10/10/2006, 14h38
  5. Envoyer plusieurs états filtrés par mail...
    Par Thierry'' dans le forum IHM
    Réponses: 8
    Dernier message: 20/09/2005, 12h02

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