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

VBA Outlook Discussion :

VBA-Outlook ,Renommer mail ?


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut VBA-Outlook ,Renommer mail ?
    Bonjour à tous!

    J'ai une petite question ,j'aimerais savoir si c'est possible par macro de renommer les mails et de les enregistrer sur un repertoire défini.Exemple

    dupont@developpez.com m'envoit un mail s'appellant RésultatFootPoule1 ,avec un fichier excel du groupe de la poule(du groupe 1 en Coupe du monde )
    Imaginons aussi un autre mail que je recevrais et qui serait presque pareil:

    Ronaldo@developpez.com m'envoit un mail s'appellant FootResult-Poule-n°2 ,avec un fichier excel du groupe de la poule(du groupe 2 en Coupe du monde )

    Et donc ,je voudrais par macro que:
    • Renommer le fichier excel recu par : Developper-Coupe Du Monde - Poule 1 (pour le 1er mail) ou Poule 2 pour le 2eme mail
    • Enregistrer ce mail (pour en faire une archive), dans c:\WorldCup\Resultat


    En fait ,je voyais ca par condition
    Si le nom de la piece jointe contient *poule1*
    Si l'expediteur = *@developpez.com
    -->Alors, ca renomme le fichier en Developpez.com-Coupe Du Monde-Poule1.xls ,dans c:\WorldCup\Resultat

    Je vous remercie d'avance pour vos tuyaux!

    PS: j'aimerais le faire sur Outlook (J'ai Outlook 2003) ,mais le top du top serait faire ca aussi sur OWA, mais j'ai pas vu de possibilité de mettre du VBA dedans.

  2. #2
    Expert éminent sénior

    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
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    cet exemple (VBA-Excel) permet de boucler sur tous les messages de la boite de réception, verifie s'il y a des pieces jointes et les enregistre sur le disque s'ils sont nommés "resultat.xls"


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub exportPiecesJointes_BoiteReception()
    Dim OutlookApp As Outlook.Application
    Dim olSpace As Outlook.NameSpace
    Dim olInbox As Outlook.MAPIFolder
    Dim pceJointe As Outlook.Attachment
    Dim j As Integer, i As Integer, x As Integer
     
    Set OutlookApp = CreateObject("Outlook.Application")
    Set olSpace = OutlookApp.GetNamespace("MAPI")
    Set olInbox = olSpace.GetDefaultFolder(olFolderInbox)
     
    'boucle sur tous les messages de la boite de réception
    For j = 1 To olInbox.Items.Count
     
    'pour recuperer le sujet du message
    'Debug.Print olInbox.Items.Item(j).Subject
    'pour recuperer le nom de l'emetteur
    'Debug.Print olInbox.Items.Item(j).SenderName
     
        'vérifie s'il y a des pieces jointes dans les messages
        If Not olInbox.Items.Item(j).Attachments.Count = 0 Then
     
            'boucle sur les pieces jointes
            For i = 1 To olInbox.Items.Item(j).Attachments.Count
            Set pceJointe = olInbox.Items.Item(j).Attachments(i)
     
                If pceJointe.Filename = "resultat.xls" Then
                x = x + 1
                'sauvegarde de la piece jointe sur le disque
                pceJointe.SaveAsFile "C:\dossier\" & x & "_" & pceJointe
                End If
     
            Set pceJointe = Nothing
            Next i
     
        End If
    Next j
     
    OutlookApp.Quit
    Set OutlookApp = Nothing
    End Sub



    bonne soiree
    michel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut Muchas gracias!
    Merci pour ta réponse

    Il me suffirait maintenant de savoir

    • Pour l'expediteur , faire la condition du genre : If expediteur.OlInbox = "*@developpez.com" then -->et la stocker dans une variable ( z ) que je remettrais dans le renommage
    • Et j'en viens a mon deuxieme point ,comment on peut faire pour renommer le fichier ,et integrer la variable du premier point
      Ca se trouve dans cette boucle
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      If pceJointe.Filename = "resultat.xls" Then
                  x = x + 1
                  'sauvegarde de la piece jointe sur le disque
                  pceJointe.SaveAsFile "C:\dossier\" & x & "_" & pceJointe
                  End If
      le pceJointe.SaveAsFile "C:\dossier\" & x & "_" & pceJointe mettre la variable z pour en faire:
      Si l'expediteur = *@developpez.com
      -->Alors, ca renomme le fichier en Developpez.com-Coupe Du Monde-Poule1.xls ,dans c:\WorldCup\Resultat



    Je garde espoir!
    En tout cas ,encore merci pour ce début de réponse!

Discussions similaires

  1. Réponses: 32
    Dernier message: 02/06/2008, 11h02
  2. [VBA-Outlook]Accéder à l'e-mail sélectionné
    Par ben53 dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 20/03/2007, 15h31
  3. [VBA] Envoie de mail via outlook
    Par sperchey dans le forum Access
    Réponses: 7
    Dernier message: 21/02/2007, 16h35
  4. [VBA][outlook] récupération des adresses mail
    Par arno2004 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 27/07/2004, 18h48
  5. Envoi d'un mail en VBA: outlook ne se lance pas
    Par Hannibal dans le forum VBA Access
    Réponses: 4
    Dernier message: 01/06/2003, 15h24

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