IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Enregistrer les Email dans un dossier de explorateur [Fait]


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 20
    Points
    20
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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 !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    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?

  6. #6
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    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'

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    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.

  8. #8
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Ok tu me rassures !!

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    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.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut
    bonjour,


    Rappel du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,
    Citation Envoyé par AlexFred Voir le message
    bonjour,
    Rappel du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.


    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 .


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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Points : 108
    Points
    108
    Par défaut
    Ok, merci pour toutes ces réponses.

    Effectivement tout marche bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2010] Enregistrer les réponses dans le meme dossier
    Par Daejung dans le forum Outlook
    Réponses: 1
    Dernier message: 27/07/2014, 17h36
  2. [PPT-2003] Enregistrement de toutes les images dans un dossier
    Par November-Oscar dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 20/05/2012, 11h01
  3. Enregistrer les logs dans plusieurs dossiers
    Par Guillaume.G dans le forum Apache
    Réponses: 1
    Dernier message: 15/07/2008, 11h28
  4. Réponses: 11
    Dernier message: 24/08/2006, 11h22
  5. [XML] lire un fichier en xml et enregistrer les donnees dans MySQL
    Par nath-0-0 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/08/2006, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo