Accueil > > > ENREGISTRER DES PIECES JOINTES DE MESSAGE D'UN DOSSIER COURANT DANS UN REPERTOIRE PRECIS (OUTLOOK)
ENREGISTRER DES PIECES JOINTES DE MESSAGE D'UN DOSSIER COURANT DANS UN REPERTOIRE PRECIS (OUTLOOK)
Information sur la source
Description
L'utilisatuer se positionne dans le dossier qui veut (boite de reception, d'envoi, elements envoyés, ...) puis active la macro qui ouvre un formulaire qui lui demande le chemin où il veut que les pièces jointes soient enregistrées. La macro enregistre les pieces jointes de tous les messages du dossier dans le repertoire donné avec comme nom Message + numéro du message + numéro de la piece jointe + date du jour. ActionFrm est une variable qui se met à vbOk quand l'utilisateur clique sur OK dans le formulaire, ou à vbCancel s'il clique sur Cancel
Source
- Global ActionFrm As Integer
- Sub exporter()
-
- Dim chemin As String 'chemin où seront enregistrés les messages
- Dim myOlApp As Application 'correspond à l'application Outlook
- Dim Expl As Explorer 'correspond à l'explorer utilisé par l'utilisateur
- Dim myNameSpace As NameSpace 'représente un objet racine abstrait pour un type de source de données quelconque
- Dim myFolder As MAPIFolder 'correspond au dossier courant
- Dim myItems As Items 'correspond aux messages du dossier courant
- Dim xi As Integer 'Indice de parcours
- Dim xj As Integer 'Indice de parcours
- Dim myAttachments As Attachments 'correspond à toutes les pièces jointes
- Dim nomFichier As String 'nom des futurs messages enregistrés
-
- 'Activation du formulaire sans l'afficher
- Load sauvegarde_PJ
-
- 'Initialisation du champs chemin
- sauvegarde_PJ.TextBox1.Value = ""
- sauvegarde_PJ.TextBox1.SetFocus
-
- 'Ouverture du formulaire
- sauvegarde_PJ.Show
-
-
- If ActionFrm = vbOK Then
-
- 'On recupère le chemin donné par l'utilisateur
- chemin = sauvegarde_PJ.TextBox1.Value
-
- 'On rajoute un \ s'il n'est pas présent à la fin du chemin
- If (Right(chemin, 1) <> "\") Then
- chemin = chemin & "\"
- End If
-
- 'Test de validité du champs
- 'Tant que l'utilisateur clique sur le bouton OK
- 'et que le test n'est pas valide
- Do While ((ActionFrm = vbOK) And ((chemin = "") Or (Dir(chemin) = "")))
-
- 'Message indiquant que le champs est vide
- 'ou le chemin est inexistant
- 'Retour au formulaire
- MsgBox "Le chemin est inexistant ou le champs est vide", vbOKOnly, "Erreur"
-
- 'Réinitialise la valeur
- sauvegarde_PJ.TextBox1.Value = ""
- sauvegarde_PJ.TextBox1.SetFocus
-
- 'Réaffiche le formulaire
- sauvegarde_PJ.Show
-
- 'Récupération de la valeur
- chemin = sauvegarde_PJ.TextBox1.Value
-
- 'Rajout de \ si non présent
- If (Right(chemin, 1) <> "\") Then
- chemin = chemin & "\"
- End If
-
- Loop
-
- 'Soit l'utilisateur a cliqué sur CANCEL (sorti de l'application, fin du programme)
- 'Soit les tests sont valides
- If (ActionFrm = vbOK) Then
-
- Set myOlApp = CreateObject("Outlook.Application")
-
- 'Expl nous donne le dossier courant
- 'Boîte de reception, d'envoi, brouillons, ...
- Set Expl = ActiveExplorer
-
- 'Permet d'accéder à toutes les données Outlook qui y sont stockées
- Set myNameSpace = myOlApp.GetNamespace("MAPI")
-
- 'On recupère l'ID du dossier courant puis on se positionne dans ce dossier
- 'pour recupérer tous les messages
- Set myFolder = myNameSpace.GetFolderFromID(Expl.CurrentFolder.EntryID)
-
- 'La variable myItems prendra comme valeur
- 'tous les messages du dossier courant
- Set myItems = myFolder.Items
-
-
- 'On parcourt myItems et
- 'pour chaque valeur on sauvegarde la pièce jointe si elle existe
- For xi = 1 To myItems.Count
-
- 'On regarde s'il existe des pièces jointes
- 'si oui on fait les sauvegardes
- 'sinon on passe au message suivant
- If myItems.Item(xi).Attachments.Count > 0 Then
-
- 'Parcours des pièces jointes
- For xj = 1 To myItems.Item(xi).Attachments.Count
-
- 'myAttachments correspond aux PJ du message courant
- Set myAttachments = myItems.Item(xi).Attachments
-
- 'Nom du message qui sera enregistré
- nomFichier = "Message" & xi & "_" & xj & "_" & Date
-
- 'On remplace les / par des _ pour pouvoir enregistrer les messages
- nomFichier = Remplacement(nomFichier, "/", "_")
-
- 'Sauvegarde de la ou les pièces jointes
- myAttachments.Item(xj).SaveAsFile (chemin & "" _
- & nomFichier & ".msg")
-
- Next
-
- End If
-
- Next xi
-
- End If
-
- End If
-
- 'Fermeture du formulaire
- Unload sauvegarde_PJ
-
- End Sub
-
- 'Fonction qui remplace le CarARemplacer par CarRemplacement dans Texte
- Function Remplacement(ByVal Texte As String, CarARemplacer As String, CarRemplacement As String) As String
- Dim c As Integer
- Do
- c = InStr(Texte, CarARemplacer)
- If c Then
- Texte = Left(Texte, c - 1) + CarRemplacement + Mid(Texte, c + Len(CarARemplacer))
- End If
- Loop While c
- Remplacement = Texte
- End Function
Global ActionFrm As Integer
Sub exporter()
Dim chemin As String 'chemin où seront enregistrés les messages
Dim myOlApp As Application 'correspond à l'application Outlook
Dim Expl As Explorer 'correspond à l'explorer utilisé par l'utilisateur
Dim myNameSpace As NameSpace 'représente un objet racine abstrait pour un type de source de données quelconque
Dim myFolder As MAPIFolder 'correspond au dossier courant
Dim myItems As Items 'correspond aux messages du dossier courant
Dim xi As Integer 'Indice de parcours
Dim xj As Integer 'Indice de parcours
Dim myAttachments As Attachments 'correspond à toutes les pièces jointes
Dim nomFichier As String 'nom des futurs messages enregistrés
'Activation du formulaire sans l'afficher
Load sauvegarde_PJ
'Initialisation du champs chemin
sauvegarde_PJ.TextBox1.Value = ""
sauvegarde_PJ.TextBox1.SetFocus
'Ouverture du formulaire
sauvegarde_PJ.Show
If ActionFrm = vbOK Then
'On recupère le chemin donné par l'utilisateur
chemin = sauvegarde_PJ.TextBox1.Value
'On rajoute un \ s'il n'est pas présent à la fin du chemin
If (Right(chemin, 1) <> "\") Then
chemin = chemin & "\"
End If
'Test de validité du champs
'Tant que l'utilisateur clique sur le bouton OK
'et que le test n'est pas valide
Do While ((ActionFrm = vbOK) And ((chemin = "") Or (Dir(chemin) = "")))
'Message indiquant que le champs est vide
'ou le chemin est inexistant
'Retour au formulaire
MsgBox "Le chemin est inexistant ou le champs est vide", vbOKOnly, "Erreur"
'Réinitialise la valeur
sauvegarde_PJ.TextBox1.Value = ""
sauvegarde_PJ.TextBox1.SetFocus
'Réaffiche le formulaire
sauvegarde_PJ.Show
'Récupération de la valeur
chemin = sauvegarde_PJ.TextBox1.Value
'Rajout de \ si non présent
If (Right(chemin, 1) <> "\") Then
chemin = chemin & "\"
End If
Loop
'Soit l'utilisateur a cliqué sur CANCEL (sorti de l'application, fin du programme)
'Soit les tests sont valides
If (ActionFrm = vbOK) Then
Set myOlApp = CreateObject("Outlook.Application")
'Expl nous donne le dossier courant
'Boîte de reception, d'envoi, brouillons, ...
Set Expl = ActiveExplorer
'Permet d'accéder à toutes les données Outlook qui y sont stockées
Set myNameSpace = myOlApp.GetNamespace("MAPI")
'On recupère l'ID du dossier courant puis on se positionne dans ce dossier
'pour recupérer tous les messages
Set myFolder = myNameSpace.GetFolderFromID(Expl.CurrentFolder.EntryID)
'La variable myItems prendra comme valeur
'tous les messages du dossier courant
Set myItems = myFolder.Items
'On parcourt myItems et
'pour chaque valeur on sauvegarde la pièce jointe si elle existe
For xi = 1 To myItems.Count
'On regarde s'il existe des pièces jointes
'si oui on fait les sauvegardes
'sinon on passe au message suivant
If myItems.Item(xi).Attachments.Count > 0 Then
'Parcours des pièces jointes
For xj = 1 To myItems.Item(xi).Attachments.Count
'myAttachments correspond aux PJ du message courant
Set myAttachments = myItems.Item(xi).Attachments
'Nom du message qui sera enregistré
nomFichier = "Message" & xi & "_" & xj & "_" & Date
'On remplace les / par des _ pour pouvoir enregistrer les messages
nomFichier = Remplacement(nomFichier, "/", "_")
'Sauvegarde de la ou les pièces jointes
myAttachments.Item(xj).SaveAsFile (chemin & "" _
& nomFichier & ".msg")
Next
End If
Next xi
End If
End If
'Fermeture du formulaire
Unload sauvegarde_PJ
End Sub
'Fonction qui remplace le CarARemplacer par CarRemplacement dans Texte
Function Remplacement(ByVal Texte As String, CarARemplacer As String, CarRemplacement As String) As String
Dim c As Integer
Do
c = InStr(Texte, CarARemplacer)
If c Then
Texte = Left(Texte, c - 1) + CarRemplacement + Mid(Texte, c + Len(CarARemplacer))
End If
Loop While c
Remplacement = Texte
End Function
Historique
- 23 mars 2005 13:56:01 :
- j'ai mis mon projet en zip, comme on me l'a demandé, il comprend mon module et mon formulaire
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|