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 :

Liaison VBA Excel Outlook - impression du dernier mail envoyé [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut Liaison VBA Excel Outlook - impression du dernier mail envoyé
    Bonjour à tous et merci d'avance de votre précieuse aide
    Voilà mon problème, je débute en VBA, et je souhaite, bêtement, à partir d'un bouton sur Excel, imprimer le dernier mail envoyé via Outlook
    J'ai pensé au code suivant mais je bloque, disons que j'y vais à taton :
    Merci d'avance et bonne apm à tous
    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
     :
    Sub Dernier_Mail()
     
        Dim OL As Object
        Dim OLmail As Object
        Dim SentFolder As outlook.MAPIFolder
        Dim lngItemps As Long, lngCounter As Long
        Dim SentItem As outlook.MailItem
     
        'J'initialise l'application Outlook et je lui indique que je veux travailler avec le dossier éléments envoyés
        Set OL = CreateObject("Outlook.Application")
        Set SentFolder = outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
     
        'Je compte le nombre de mails dans le dossier éléments envoyés
        lngCounter = SentFolder.Items.Count
     
        'imprimer le dernier mail envoyé, c'est à dire le numéro 1
        If lngCounter = 0 Then
        MsgBox ("Il n'y a aucun email dans la boite Elements envoyés")
        Else
        For lngCounter = 1 To 1
        SentFolder = outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items
        SentFolder.PrintOut
        Next
        End If
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Premièrement, quand tu mets du code, utilise le bouton # en haut du message pour le formater. (Tu peux éditer ton message...)
    Tu écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set OL = CreateObject("Outlook.Application")
     Set SentFolder = outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
    Sur la 2e ligne, il vaudrait mieux utiliser OL que tu initialises juste avant plutôt que Outlook qui ne veut rien dire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SentFolder = OL.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
    Plus loin, je ne suis pas certain que l'Item(1) sera vraiment le dernier envoyé (?)
    Et pas nécessaire de boucler si tu veux l'item(1); mets son index entre parenthèses...

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    j'ai écrit à la volée car pas Outlook sous la main avant ce soir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub OlOl()
     Dim MonOutlook As Object, MonMail As Object
     Set MonOutlook = CreateObject("Outlook.Application")
    With MonOutlook.getnamespace("MAPI").getdefaultfolder(5) 'olFolderSentMail
        If .items.Count > 0 Then Set MonMail = .items(1)
    End With
    End Sub
    Vérifier si MonMail est bien le mail que tu cherches (affiche son objet par exemple)

    Si pas bon, dis-le nous, ça voudra dire que j'ai fais une coquille
    D'ailleurs je ne suis même pas certain que le NameSpace soit nécessaire dans ton contexte

  4. #4
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut
    Bonjour joe.levrai et merci beaucoup pour ta précieuse aide
    Le code marche parfaitement, j'ai simplement ajouter la ligne "MonMail.PrintOut" avant le End With
    Par défaut pour répondre à ta question, le dernier mail envoyé porte bien le numéro 1 !
    Un grand merci et excellente journée.
    Bonne continuation

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    La variable monmail était pour illustrer l'exemple, elle peut parfaitement être effacée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .items.Count > 0 Then .items(1).PrintOut

  6. #6
    Membre averti
    Homme Profil pro
    GESTIONNAIRE
    Inscrit en
    Novembre 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GESTIONNAIRE
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2016
    Messages : 30
    Par défaut
    Bonsoir Joe ! Permets moi de te soumettre une autre demande, dans le même esprit liaison excel outlook, j'aimerai toujours à partir d'excel enregistrer la piece jointe (format pdf) du dernier mail reçu avec comme nom de fichier le contenu de ma cellule b14 par exemple.

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

Discussions similaires

  1. pb vba excel/outlook
    Par lumbroso dans le forum VBA Outlook
    Réponses: 6
    Dernier message: 06/03/2013, 18h22
  2. [FAQ VBA Excel] Les impressions
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 11/06/2012, 11h34
  3. Réponses: 2
    Dernier message: 07/12/2007, 17h20
  4. [vba excel outlook] envoie de message via vba
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/08/2006, 16h11
  5. Réponses: 4
    Dernier message: 13/07/2006, 10h33

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