Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2006, 16h22   #1
Membre à l'essai
 
Inscription : juin 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 98
Points : 24
Points : 24
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.
bonilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2006, 22h41   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
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 :
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
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2006, 12h40   #3
Membre à l'essai
 
Inscription : juin 2006
Messages : 98
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 98
Points : 24
Points : 24
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 :
    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!
bonilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h37.


 
 
 
 
Partenaires

Hébergement Web