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 29/10/2011, 09h46   #1
Invité de passage
 
Jean-Michel GAUDIN
Inscription : octobre 2009
Messages : 3
Détails du profil
Informations personnelles :
Nom : Jean-Michel GAUDIN

Informations forums :
Inscription : octobre 2009
Messages : 3
Points : 1
Points : 1
Par défaut enregistrement de pièces jointes dans OL2010

Bonjour,

Je cherche à créer une macro permettant d'enregistrer sur le disque dur les pièces jointes sélectionnées d'un message.
J'ai essayé de personnaliser le code développé par Morgan BILLY (FAQ OUTLOOK) dans la question "Est-il possible de personnaliser le menu contextuel 'Pièce jointe' d'un message sous Outlook 2007 ?" .
Je bloque sur l'utilisation d'attachmentselection. voici le code de ma macro :

Code :
1
2
3
4
5
6
7
8
9
10
11
Sub SauvPJ_GED()
    Dim objAttachments As AttachmentSelection
    Dim objAttachment As Attachment
    Dim strAttachment As String
    Set objAttachments = Attachments
    strAttachment = ""
    For Each objAttachment In objAttachments
        strAttachment = objAttachment.FileName
        objAttachment.SaveAsFile "c:\PJ\" & strAttachment
    Next
End Sub
Et cela ne fonctionne pas.

Merci pour votre aide.
jmgaudin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 10h06   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Bonjour ..

et d'où tu sors ta variable Attachments ?

Rappel : En VB/VBA il faut toujours activer l'option Explicit en rajoutant en haut de ton code la ligne :
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 17h17   #3
Invité de passage
 
Jean-Michel GAUDIN
Inscription : octobre 2009
Messages : 3
Détails du profil
Informations personnelles :
Nom : Jean-Michel GAUDIN

Informations forums :
Inscription : octobre 2009
Messages : 3
Points : 1
Points : 1
Par défaut Précisions

Bonjour,

En effet, j'ai du me 'planter' dans le copier coller.
Je cherche à adapter la procédure qui fonctionnait très bien sous OL2007 (voir ci-dessous) et qui ne fonctionne plus sous OL2010 (AttachmentContextMenuDisplay ne fonctionne plus).

Je cherche donc à écrire une macro unique qui sera lancées par un bouton dans la barre d'outils.

Merci

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
'Déclare l'objet comme jeu d'objets correspondant aux pièces jointes sélectionnées
Dim objAttachments As AttachmentSelection
 
Private Sub Application_AttachmentContextMenuDisplay( _
        ByVal CommandBar As Office.CommandBar, _
        ByVal Attachments As AttachmentSelection)
'Déclaration de l'objet en tant que bouton de commande
    Dim objButton As CommandBarButton
    'Instancie à l'objet la sélection des pièces jointes
    Set objAttachments = Attachments
    'Instancie l'objet en tant que nous nouveau contrôle : Bouton
    Set objButton = CommandBar.Controls.Add( _
                    msoControlButton, , , , True)
    'Paramétrage du nouveau bouton
    With objButton
        .Style = msoButtonIconAndCaption    'Icône + commentaire
        .Caption = "Test"    'Commentaire
        .FaceId = 355    'ID de l'icône du bouton
        .OnAction = "Projet 1.ThisOutlookSession.InfosPJ"    'Affectation de la macro au bouton lors du clic
    End With
End Sub
 
Sub InfosPJ()
'Déclaration des objets et variables
    Dim objAttachment As Attachment
    Dim strTemp As String
    'initialisation de la variable
    strTemp = ""
    'boucle permettant de sortir les pièces jointes du jeu de sélection des pièces jointes
    For Each objAttachment In objAttachments
        strAttachment = objAttachment.FileName
        objAttachment.SaveAsFile "C:\PJ\" & strAttachment
        End With
    Next
End Sub
jmgaudin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 17h35   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
je viens de tester AttachmentContextMenuDisplay
cet événement fonctionne bien sous OL2010, le code que j'ai placé dans ThisOutlookSession :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Application_AttachmentContextMenuDisplay( _
    ByVal CommandBar As Office.CommandBar, _
    ByVal Attachments As AttachmentSelection)
Dim oAtt As Attachment
Dim st As String
For Each oAtt In Attachments
  st = st & oAtt.FileName & vbCrLf
Next
MsgBox st
 
 
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 11h48   #5
Invité de passage
 
Jean-Michel GAUDIN
Inscription : octobre 2009
Messages : 3
Détails du profil
Informations personnelles :
Nom : Jean-Michel GAUDIN

Informations forums :
Inscription : octobre 2009
Messages : 3
Points : 1
Points : 1
Par défaut macro sauvegarde des pièces jointes - résolu

Bonjour,

Effectivement AttachmentContextMenuDisplay fonctionne bien sous 2007, mais c'est la possibilité de créer un bouton dans le menu contextuel qui ne marche plus.

Par contre, votre indication m'a permis de mieux comprendre AttachmentSelection et maintenant ma macro fonctionne !!!
voici son code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub SauvPJ_GED()
    Dim MaPJ As Attachment
    Dim MesPJ As Outlook.AttachmentSelection
    Set MesPJ = Outlook.Application.ActiveExplorer.AttachmentSelection
    Dim strAttachment As String
    'initialisation de la variable
    strAttachment = ""
    'boucle permettant de sortir les pièces jointes du jeu de sélection des pièces jointes
    For Each MaPJ In MesPJ
        strAttachment = MaPJ.FileName
        MaPJ.SaveAsFile "C:\PJ\" & strAttachment
    Next
Merci beaucoup
jmgaudin 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 09h24.


 
 
 
 
Partenaires

Hébergement Web