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 18/11/2010, 17h57   #1
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2008
Messages : 87
Points : 28
Points : 28
Par défaut Changer le nom de la pièce jointe à enregistrer

Bonjour

J'ai repris le code ci-dessous issu de la FAQ (d'ailleurs merci à l'auteur !!). Il marche très bien (même si j'ai oté la partie PJ Embedded) , mais j'aurais voulu savoir comment changer le nom de la pièce jointe. En fait, elle s'appelle "Compte" et je la reçois tous les jours et je l'enregistre au même endroit. Donc je voudrais par exemple l'appeler "20101118_Compte".

Merci à toutes celles et ceux qui pourront m'aider.

Secco


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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Sub extrait_PJ_vers_rep(strID As Outlook.MailItem)
 
' ***olivier CATTEAU***
 
' 23 avril 2007
 
    Dim olNS As Outlook.namespace
    Dim MyMail As Outlook.MailItem
 
    Dim expediteur
    Set olNS = Application.GetNamespace("MAPI")
    Set MyMail = olNS.GetItemFromID(strID.EntryID)
 
    'MsgBox "nouveau message"
 
    If MyMail.Attachments.Count > 0 Then
 
        expediteur = MyMail.SenderEmailAddress
 
        'on crée le répertoire où mettre les fichiers joints ##########################################################
 
        'c:\temp\pj\ doit déjà exister !!!
 
        Repertoire = "c:\temp\pj\" & expediteur & "\"
 
        If Repertoire <> "" Then
 
            If "" = Dir(Repertoire, vbDirectory) Then
 
                MkDir Repertoire
 
            End If
 
        End If
 
        'on traite les pj
 
        Dim PJ, typeatt
 
        For Each PJ In MyMail.Attachments
            'vérification si c'est une PJ Embedded
 
            typeatt = Isembedded(strID, PJ.Index)
 
            If typeatt = "" Then
 
                If "" <> Dir(Repertoire & PJ.FileName, vbNormal) Then
 
                    MsgBox Repertoire & PJ.FileName & " existe !!"
 
                    'si existe copie vers le répertoire old
 
                    If "" = Dir(Repertoire & "old", vbDirectory) Then
 
                        MkDir Repertoire & "old"
 
                    End If
 
                    FileCopy Repertoire & PJ.FileName, Repertoire & "old\" & PJ.FileName
 
                End If
 
                PJ.SaveAsFile Repertoire & PJ.FileName
 
            End If
 
        Next PJ
 
        'drapeau vert
 
        MyMail.FlagIcon = olGreenFlagIcon
 
        'Marque lu
 
        MyMail.UnRead = False
 
        MyMail.Save
 
        'on déplace le mail vers un sous dossier outlook
 
        Dim myDestFolder As Outlook.MAPIFolder
 
        Set myDestFolder = MyMail.Parent.Folders("test")
        MyMail.Move myDestFolder
 
    End If
 
    Set MyMail = Nothing
    Set olNS = Nothing
 
Fin:
 
End Sub
Secco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h21   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 293
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 293
Points : 29 023
Points : 29 023
Salut,


Essaie ce morceau de code dans celui que tu as déjà :
Code :
1
2
3
4
5
 
For Each PJ In MyMail.Attachments
            pj.SaveAsFile "C:\Temp\" & Format(Date(),"yyyymmdd") & "_compte.oli"
 
        Next PJ
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/11/2010, 11h14   #3
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 87
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : avril 2008
Messages : 87
Points : 28
Points : 28
Merci beaucoup !

J'avais essayé des choses beaucoup plus compliqué en essayant de changer le FileName de la pièce jointe sans succès...

Donc code final : (juste comme mon fichier était compte.txt j'ai mis .txt au lieu de .oli)

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Sub extrait_PJ_vers_rep(strID As Outlook.MailItem)
 
' ***olivier CATTEAU***
 
' 23 avril 2007
 
    Dim olNS As Outlook.namespace
    Dim MyMail As Outlook.MailItem
 
    Dim expediteur
    Set olNS = Application.GetNamespace("MAPI")
    Set MyMail = olNS.GetItemFromID(strID.EntryID)
 
    'MsgBox "nouveau message"
 
    If MyMail.Attachments.Count > 0 Then
 
        expediteur = MyMail.SenderEmailAddress
 
        'on crée le répertoire où mettre les fichiers joints ##########################################################
 
        'c:\temp\pj\ doit déjà exister !!!
 
        Repertoire = "c:\temp\pj\" & expediteur & "\"
 
        If Repertoire <> "" Then
 
            If "" = Dir(Repertoire, vbDirectory) Then
 
                MkDir Repertoire
 
            End If
 
        End If
 
        'on traite les pj
 
        Dim PJ, typeatt
 
        For Each PJ In MyMail.Attachments
            PJ.SaveAsFile "C:\Temp\" & Format(Date(),"yyyymmdd") & "_compte.txt"
        Next PJ
 
        'drapeau vert
 
        MyMail.FlagIcon = olGreenFlagIcon
 
        'Marque lu
 
        MyMail.UnRead = False
 
        MyMail.Save
 
        'on déplace le mail vers un sous dossier outlook
 
        Dim myDestFolder As Outlook.MAPIFolder
 
        Set myDestFolder = MyMail.Parent.Folders("test")
        MyMail.Move myDestFolder
 
    End If
 
    Set MyMail = Nothing
    Set olNS = Nothing
 
Fin:
 
End Sub
Secco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 13h00   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 293
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 293
Points : 29 023
Points : 29 023
Salut,

Ne connaissant pas l'extension de ton fichier, j'ai simplement mis une extension bidon.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web