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 05/09/2007, 13h26   #1
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Par défaut [Résolu] - Enregistrer les Email dans un dossier de explorateur

Bonjour,

Je travaill sur Windows XP et Outlook 2000

j'avais vu un post qui traitais de ce sujet ou similaire, marqué résolu mais sur mon PC, le code ne marchait pas du tout, j'ai fouillé et trouver un code qui marche sur mon PC

Je souhaite le modifier pour que si un message porte le meme nom il soit quand meme enregistrer, apperement il est shunter.

exemple en sauvegardant les mails rajouter un numero au debut qui s'incrémente comme çà aucun nom de mail sera identique

exemple

nom de sauvegarde = n+1 & nom originel du mail envoyé

une personne saurait elle adapter ce code

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub sav_mail_as_msg(Optional objCurrentMessage As Object)
'By Oliv' juillet 2007 pour OUTLOOK 2003
 
If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
 
'Ici on construit le nom du fichier qui sera créé
NomExport = objCurrentMessage.Subject & objCurrentMessage.CreationTime
 
'Ici on défini le répertoire où l'enregistrer
repertoire = "c:\mail\"
'repertoire = BrowseForFolder("Choisissez la destination", SDossier(5, 0)) & "\"
 
'Ici on supprime les caractères non autorisé dans les noms de fichiers
PathNomExport = repertoire & "Email " & Left(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace( _
NomExport, "\", ""), "/", ""), ":", ""), "*", ""), "?", ""), "<", ""), ">", ""), "|", ""), ".", ""), """", ""), vbTab, ""), Chr(7), ""), 160) & ".msg"
 
'Ici on vérifie que le fichier n'existe pas déjà sinon il serait écrasé
n = 1
MemPath = PathNomExport
While Dir(PathNomExport) <> ""
MsgBox "Le fichier " & vbCr & PathNomExport & vbCr & "existe déjà", vbInformation
PathNomExport = Left(MemPath, Len(MemPath) - 4) & "(" & n & ")" & ".msg"
n = n + 1
 
Wend
    objCurrentMessage.SaveAs PathNomExport, OlSaveAsType.olMSG
 
End Sub
 
Sub LanceSurOuvert()
sav_mail_as_msg
End Sub
 
 
Sub LanceSurSelection()
Dim MonOutlook As Outlook.Application
Dim LeMail As Object
Dim LesMails As Outlook.Selection
Set MonOutlook = Outlook.Application
 
Set LesMails = MonOutlook.ActiveExplorer.Selection
 
    For Each LeMail In LesMails
    sav_mail_as_msg LeMail
    Next LeMail
 
Set LesMails = Nothing
MsgBox "Fin de traitement"
End Sub
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 13h30   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Code :
1
2
3
4
 
        strName = myItem.EntryID
 
        myItem.SaveAs "C:\temp\" & strName & ".txt", olTXT
Voilà ce que j'avais utilisé, tu peux toujours ajouter cette variable, on encore ajouter l'heure de sauvegarde dans le nom, plus besoin de faire de test.
__________________
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
Vieux 05/09/2007, 13h54   #3
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Bonjour heureux oli

je saisis pas trop ou meetre ton code, le meesage je souhaite qu'il soit enregistrer avec les pieces jointes et au format msg.

Sauf lui mettre 1 numero devant le nom qui se trouve dans la boite d'envoi ou de reception

exemple
Plans des etages
Plans des etages
Plan du RDC

dison que le 1er aurait ete envoyé le lundi et le 2 eme et 3eme le mardi

j aurais souhaite avoir:


1-Plans des etages
2-Plans des etages
3-Plan du RDC

car dans mon cas il enregistre que le plans des etages du lundi et passe direct au plan du RDC suauf que le mail du mardi pourrait dans la boite de recpetion ou d'envoi porte le meme nom mais a interieur avoir des modifications indice ou autre

Voilà, j'espère que c'est pas trop compliqué ce que je demande
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h07   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
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 354
Points : 29 270
Points : 29 270
Tu ajoutes dans le nom, l'heure ou la date, ou les deux.
tu auras

04/09/2007 08:00 Plan de l'étage.msg
05/09/2007 08:30 Plan de l'étage.msg
.......
__________________
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
Vieux 10/09/2007, 22h34   #5
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Bonsoir,

je n'arrive pas à adapter le code, mais connaisances en vba sont plutot derisoire.

Pourrais tu me dire sur quelles ligne je dois rajouter ton code stp?
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 09h46   #6
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Bonjour,
Le code que tu cites au début est de moi et il fait déjà ce que tu demandes, as tu le message te disant qu'il existe déjà ?
Oliv'
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 14h01   #7
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Bonjour,

oui je viens de bien regarder, en fait il marche bien, c'est la message box sui m'avais croire le contraire " messsage le fichier existe déjà".

En regardant de plus près j'ai bien vu qu'il lui était donné un nouveau numéro.
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 17h22   #8
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Ok tu me rassures !!
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 18h26   #9
Invité régulier
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 8
Points : 8
Bonsoir,

Oui en fait j'avais au moins une soixantaine de mail donc j'avais pas recompter au debut, en voyant ta réponse j'ai fais la vérification.

Ton code me fais gagner pas mal de temps, merci.
Vbapprentis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 15h41   #10
Membre du Club
 
Inscription : janvier 2007
Messages : 183
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 183
Points : 48
Points : 48
bonjour,


Rappel du code suivant:
Code :
1
2
'Ici on construit le nom du fichier qui sera créé
NomExport = objCurrentMessage.Subject & objCurrentMessage.CreationTime
Comment je peux récupérer d'autres élement en plus, comme le nom du récipient.

D'autre part, quand j'utilse Vba, il me propose habituellement automatiquement les différentes possibiltés comme Subject, CreationTime, mais là il ne propose rien alors que le complément auitomatique est mis.

De plus pour LanceSurSelection() cela marche très bien, mais quand je lance sub LanceSurOuvert(),
cela se plante sur l'instruction suivante:

Code :
If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
et je récupère :
error: variable objet ou variable de bloc with non défini

Que dois faire cette procédure exactement?


Mystères que j'aimerai percer.

Merci pour toute réponse.
AlexFred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 16h22   #11
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
SAlut,
Citation:
Envoyé par AlexFred Voir le message
bonjour,
Rappel du code suivant:
Code :
1
2
'Ici on construit le nom du fichier qui sera créé
NomExport = objCurrentMessage.Subject & objCurrentMessage.CreationTime
Comment je peux récupérer d'autres élement en plus, comme le nom du récipient.
Regarde dans l'aide sur mailitem tu auras les propriétés.


Citation:
D'autre part, quand j'utilse Vba, il me propose habituellement automatiquement les différentes possibiltés comme Subject, CreationTime, mais là il ne propose rien alors que le complément auitomatique est mis.
C'est parce que objCurrentMessage est défini comme un "object" généraliste et non en Outlook.mailitem .


Citation:
De plus pour LanceSurSelection() cela marche très bien, mais quand je lance sub LanceSurOuvert(),
cela se plante sur l'instruction suivante:

Code :
If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
et je récupère :
error: variable objet ou variable de bloc with non défini

Que dois faire cette procédure exactement?
Il faut qu'un mail soit ouvert.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 11h59   #12
Membre du Club
 
Inscription : janvier 2007
Messages : 183
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 183
Points : 48
Points : 48
Ok, merci pour toutes ces réponses.

Effectivement tout marche bien.
AlexFred 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 09h38.


 
 
 
 
Partenaires

Hébergement Web