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 :

VBA: pièce jointe supplémentaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut VBA: pièce jointe supplémentaire
    Bonjour à tous,

    Par automation VBA sous Excel 2000, je crée plusieurs emails contenant chacun une pièce jointe (un bulletin d'analyse en .pdf par email).

    Avant d'envoyer ces emails j'aimerai pouvoir ajouter également par VBA à certains d'entre eux une pièce jointe supplémentaire.

    Dés lors, comment puis-je récupérer la liste de mes emails en attente d'envois afin de pouvoir cibler le bon email auquel ajouter ma pièce jointe supplémentaire?

    Merci d'avance pour votre aide.

    Stach ;-)

  2. #2
    Expert confirmé

    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
    Par défaut
    bonjour

    j'espère que cet exemple pourra t'aider :

    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
    Dim Ol As Outlook.Application
    Dim Ns As Outlook.Namespace
    Dim Dossier As Outlook.MAPIFolder
    Dim Cible As MailItem
     
    Set Ol = New Outlook.Application
    Set Ns = Ol.GetNamespace("MAPI")
     
    'Identifie le répertoire "Brouillons"
    Set Dossier = Ns.GetDefaultFolder(olFolderDrafts)
     
    'Recherche un mail dont le sujet est "test" dans le dossier "Brouillons"
    Set Cible = Dossier.Items.Find("[Subject] = 'test'")
     
    If Not Cible Is Nothing Then
            'Ajoute une pièce jointe
            Cible.Attachments.Add "C:\dossier\Classeur2.xls"
            'Définit le destinataire
            'Cible.To = "NomPrenom@mail.fr"
            'Envoie le message
            Cible.Send
        Else
            MsgBox "Non trouvé."
    End If


    bonne soirée
    michel

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Salut Michel,

    Un grand merci, je vais tester ça et voir si je m'en sors.

    Stach ;-)

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Michel,

    Le code que tu m'as donner me donne déjà une bonne piste.

    Lorsque j'essaye d'adapter ton code pour essayer de faire ma liste, j'essaye de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Item in Dossier.Items
         Debug.print Item.Name
    Next
    Mais la méthode échoue

    J'ai également essayer avec "Caption" ou "Value", mais ce n'est pas mieux.

    Pourrais-tu me dire comment récupérer les noms (via leur sujet) des mails afin de pouvoir m'en servir par la suite pour y attacher ma pièce jointes supplémentaire?

    Merci et bonne soirée.

    Stach ;-)

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Salut,

    J'ai fais le test ce matin au boulot. Le problème est que mes mails, une fois créés, ne se mettent pas dans le dossier "Brouillon" de Outlook 2000. La solution que tu me proposais était tentente, dommage.

    Aurais-tu alors une idée pour lister toutes les fenêtres ouvertes dans ma barre des tâches? ainsi je pourrais récupérer le fenêtre de l'email auquel je veux ajouter ma pièce jointe...

    Merci d'avance.

    Stach ;-)

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Voilà, j'ai ma solution pour récupérer la liste de mes emails en attente d'envois

    Tout d'abord, lorsque je crée mes emails de départ, je les sauvegarde afin que ceux-ci soient dans mon sous-dossier "Brouillons" de Outlook.

    Ensuite,pour récupérer la liste de ces emails se trouvant dans "Brouillons" dans une feuille Excel (MyMails):

    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
    Private Sub btnENVOYER_Click()
    Dim Line As Integer, I As Integer
    Dim Myolapp As New Outlook.Application, MySpace As Outlook.Namespace, MyFolder As Outlook.MAPIFolder, MySubFold As Outlook.MAPIFolder, MyMail As Object
     
    'Récupération des nouveaux emails ouverts (sauvegardé dans "Brouillons")
     
    Set Myolapp = CreateObject("Outlook.Application")
    Set MySpace = Myolapp.GetNamespace("MAPI")
    Set MyFolder = MySpace.Folders("Dossiers Personnels")
    Set MySubFold = MyFolder.Folders("Brouillons")
     
    Sheets("MyMails").Cells.Clear
    Line = 1
     
    For I = 1 To MySubFold.Items.Count
            Set MyMail = MySubFold.Items(I)
     
            Sheets("MyMails").Cells(Line, 1) = MyMail
            Line = Line + 1
    Next
     
    End Sub
    Ce n'était pas trop compliqué, mais il fallait savoir comment s'y prendre.

    Pour info, j'envoi la liste récupérée ddans une liste déroulante se trouvant dans un UserForm. De là, je pourrais sélectionner dans quel email je veux joindre mon attachement supplémentaire.

    Encore merci d'avoir chercher avec moi.

    Stach ;-)

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

Discussions similaires

  1. VBA: pièce jointe supplémentaire
    Par Stach dans le forum VBA Outlook
    Réponses: 3
    Dernier message: 13/05/2008, 20h19
  2. [VBA]Pièces jointes dans un Email
    Par Gabout dans le forum VBA Access
    Réponses: 7
    Dernier message: 15/04/2007, 14h27
  3. Lotus Notes - Enregistrer Pièce Jointe par VBA
    Par Peterson82 dans le forum Général VBA
    Réponses: 1
    Dernier message: 17/10/2006, 06h54
  4. [VBA OUTLOOK] pièces jointes
    Par SpaceFrog dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 26/09/2006, 17h22
  5. [FAQ] [Access 2007] Gestion des pièces jointes en VBA
    Par Tofalu dans le forum Contribuez
    Réponses: 4
    Dernier message: 04/07/2006, 00h16

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