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

Outlook Discussion :

Enregistrement d'une pièce jointe à l'arrivée d'un mail


Sujet :

Outlook

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur d'étude en bâtiment
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'étude en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Enregistrement d'une pièce jointe à l'arrivée d'un mail
    Bonjour à tous et à toutes.

    Pour vous présenter mon projet :
    Je vais recevoir sur une boîte mail des e-mails provenant d'une application mobile (application utilisée sur chantier). Ces e-mails auront tous un objet sous le même format :
    N°Chantier - TypeFichier - Date
    Chaque mail comprendra une unique pièce jointe.
    J'aimerais, à l'arrivée de chaque mail, que la pièce jointe soit enregistrée dans le bon dossier, c'est à dire :
    Sous X:\Registres\
    1er dossier : N° Chantier
    ---2nd dossier : Type de fichier
    ------Enregistrement de la PJ sous la forme : N°Chantier - TypeFichier - Date

    Actuellement, dans mon dossier principal, se trouve juste un modèle comprenant tous les type de sous-dossiers possibles :
    Sous X:\Registres\
    1er dossier : Modèle
    ---2eme dossier : Type de fichier 1
    ---------------------Type de fichier 2
    ...

    J'ai donc tenté de faire moi-même mon code VBA en prenant à droite et à gauche des informations sur les forums, cela donne :

    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
    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
     
        'Déclarations
        Dim MonApp As Outlook.Application
        Dim MonMail As Object
        Dim MonNameSpace As Outlook.NameSpace
        Dim MonDossier As Outlook.Folder
        Dim NomMail As Object
        Dim pceJointe As Outlook.Attachment
     
        'Instance des objets
        Set MonApp = Outlook.Application
        Set MonNameSpace = MonApp.GetNamespace("MAPI")
        Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
        Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)
     
        Set NomMail = MonMail.Subject
        Set PJ = MonMail.Attachements
     
        Dim NumChantier As String
        Dim NbCaracNumChantier As String
     
            'Test si l'expéditeur correspond
            If MonMail.SenderEmailAddress = "a.tarbour@gmail.com" Then
                'Vérifier si le répertoire existe, si non le créer
                    'Compte le nombre de caracteres avant le premier - et les extraits dans la variable NumChantier
                NbCaracNumChantier = InStr(NomMail, "-")
                NumChantier = Left(NomMail, NbCaracNumChantier)
                'Si le répertoire avec le numéro de chantier n'existe pas, le créer
                If Dir("X:\Registres" & NumChantier, vbDirectory) <> "" Then
                Else
                    FileSystemObject.CopyFolder "X:\Registres\Modele dossier chantier", "X:\Registres\" & NumChantier
                End If
                'Extraire le type de fiche reçue et le copier dans le bon répertoire
                    'Se placer après le premier tiré, puis aller chercher le prochain tiré pour extraire seulement le type de fichier
                x = NbCaracNumChantier + 1
                NbCaracFiche = InStr(x, NomMail, "-")
                NomFiche = Mid(NomMail, NbCaracNumChantier, NbCaracFiche - NbCaracNumChantier)
                    'Sauvegarder la pièce jointe dans le dossier correspondant à la fiche, en la renommant avec le nom du mail (numchantier - type fichier - date).
                PJ.SaveAsFile "X:\Registres\" & NumChantier & "\" & NomFiche & "\" & NomMail
     
            End If
     
    End Sub


    Je me retrouve avec deux soucis :
    1 : Je ne peux plus quitter le mode création...
    2 : Lorsque je pouvais encore effectuer mes test, cela ne fonctionnait pas tellement...

    Je suis loin d'être un expert en VBA et en programmation en règle général, et je vous avoue commencer à atteindre mes limites de compétences.

    Je vous remercie par avance pour votre aide.
    Bonne journée à tous.

    Arnaud.

  2. #2
    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,
    C'est un bon début

    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set PJ = MonMail.Attachements
    représente toutes les PJ du mail, donc tu ne peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PJ.SaveAsFile "X:\Registres\" & NumChantier & "\" & NomFiche & "\" & NomMail
    tu dois parcourir toutes les PJ avec un Fora each ou autre boucle ou si tu es sûr qu'il n'y en a qu'une

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PJ(1).SaveAsFile "X:\Registres\" & NumChantier & "\" & NomFiche & "\" & NomMail

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur d'étude en bâtiment
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'étude en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Oliv,

    Merci pour votre réponse. Je vais déjà corriger cette partie.

    Avez-vous une idée pour le mode création? Car je n'arrive pas à m'en dépatouiller :/

  4. #4
    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
    le mode création est dans VBE (ALT+F11) à partir d'outlook.
    c'est l'icone



    également dans le menu Exécution

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur d'étude en bâtiment
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'étude en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour Oliv,

    J'ai ce message qui s'affiche

    Nom : Sans titre.png
Affichages : 628
Taille : 17,8 Ko

    Je suis allé voir dans les paramètres "sécurité des macro", mais même en activant toutes les macro rien en bouge...
    Une idée?

    Merci d'avance !

    Arnaud.



    EDIT : En activant les macro au démarrage, cela re-fonctionne !

    Je continue de tester ma petite Macro, je reviens vers toi si j'ai un problème.
    Merci en tout cas de ta précieuse aide !

    Bien à toi,
    Arnaud,

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur d'étude en bâtiment
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'étude en bâtiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Me revoilà, moi et mes soucis. Et comme une image vaut bien mieux que 1000 mots, voici en clair ce qui se passe :

    Nom : Sans titre.png
Affichages : 701
Taille : 110,5 Ko

    Je ne comprend pas très bien les déclarations, quand je regarde sur la FAQ elles diffèrent d'un code à l'autre...
    Si quelqu'un a des explications à m'apporter, je suis bien évidemment preneur !

    Merci d'avance,

    Cordialement,
    Arnaud.

Discussions similaires

  1. [PHP 5.3] MailTo et envoi, sans enregistrement sur le serveur, d'une pièce jointe
    Par SIGER_971 dans le forum Langage
    Réponses: 0
    Dernier message: 21/06/2010, 10h07
  2. Réponses: 7
    Dernier message: 31/03/2010, 23h12
  3. Réponses: 0
    Dernier message: 16/09/2009, 10h17
  4. [Perl] Récupérer une pièce jointe outlook
    Par cyberps2 dans le forum Langage
    Réponses: 2
    Dernier message: 05/07/2009, 15h34
  5. Comment enregistrer une pièce jointe d'un mail ?
    Par forum_75 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 24/02/2009, 08h51

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