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 :

Parcourir le contenu des pièces jointes pour les transférer vers un répertoire réseau [OL-2019]


Sujet :

VBA Outlook

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 29
    Points : 16
    Points
    16
    Par défaut Parcourir le contenu des pièces jointes pour les transférer vers un répertoire réseau
    Bonsoir,

    Je cherche depuis Outlook 2019 (O365) à créer une ou plusieurs macro pour transférer les pièces jointes (fichiers *.pdf), sur un message donné (ouvert ou non, mais celui sur lequel je suis positionné) de façon à déplacer les PJ vers un lecteur réseau distant?

    J'ai copié en partie le code que tu avais fourni pour ouvrir un seul mail à la fois (qui fonctionne bien), mais après je ne sais pas comment parcourir le contenu des pièces pour les transférer vers ce répertoire réseau?

    J'ai créé depuis Outlook un bouton dans un onglet supplémentaire de façon à déclencher ces différentes actions.

    Merci de votre retour, bonne soirée.

    Rodolphe.

    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
     
    Sub GetSelectedItems()
        Dim myolApp As New Outlook.Application
        Dim myOlExp As Outlook.Explorer
        Dim myOlSel As Outlook.Selection
        Dim MsgTxt As String
        Dim x As Integer
        MsgTxt = "Vous devez selectionner un seul mail"
        Set myOlExp = myolApp.ActiveExplorer
        Set myOlSel = myOlExp.Selection
        x = myOlSel.Count
        If x <> 1 Then
           MsgBox MsgTxt
           Exit Sub
        End If
    'ca c'est pour l'afficher
        myOlSel.Item(x).Display
    'ca c'est pour le mettre dans la variable précedente
    Set ObjItem=myOlSel.Item(x)
     
        End Sub

  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,

    tu trouveras une fonction et des exemples ici

    https://www.developpez.net/forums/bl...yperlien-mail/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Merci Olivier,

    je n'ai pas encore regardé ton lien, j'ai bien progressé sur mon code en m'appuyant sur des posts que tu avais diffusé.
    Je pense que j'ai un peu de code superflu, mais ça fonctionne, il me reste encore quelques modifications à apporter à ces macros, comme supprimer les espaces dans les noms de fichier des pièces jointes, ne sélectionner qu'une partie des pièces jointes d'un mail en fonction d'une liste (là, je ne sais pas encore comment faire....)

    Par contre j'avais deux questions:

    - Lorsque je fais des tests et que je déclenche ma macro via un bouton dans Outlook, à la fin du trairement je perds systématiquement mon onglet "Développeur", je suis obligé de fermer Outlook pour le récupérer?

    - Et si je veux publier ou diffuser mon code sur plusieurs postes clients, est-ce qu'il me suffit de déployer le projet "VbaProject.OTM" qui se trouve sur mon disque local et en faire de même sur les postes qui doivent avoir cette fonctionnalité?


    Merci de ton retour.


    Mon Interface
    Nom : 2020-11-06_16-19-03.jpg
Affichages : 89
Taille : 22,3 Ko

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    Sub MacroGED(MyItem As Outlook.MailItem)
     
        Dim myAttachments As Object
        Dim MsgTxt As String
        Dim CheminTemp As String
        Dim MonOutlook As Outlook.Application
        Dim Mail As Object
        Dim LeMail As Outlook.MailItem
        Dim LesMails As Object
        Set MonOutlook = Outlook.Application
        Set LesMails = MonOutlook.ActiveExplorer.Selection
     
         'Boîte de dialogue simple pour le chemin de sauvegarde
        CheminTemp = "\\fransff08\SFF\Transfert\@@RL\"
     
        Set myAttachments = MyItem.Attachments
        If myAttachments.Count > 0 Then
     
            'Pour chaque pièce jointe, faire etc...
            MsgTxt = "Traiter les pièces jointe!!"
            MsgBox MsgTxt
     
            For Each LeMail In LesMails
                Dim pj As Attachment
     
                For Each pj In LeMail.Attachments
                    If Right(UCase(pj.FileName), 4) = ".PDF" Then
                        CheminTemp = CheminTemp & pj.FileName
                        pj.SaveAsFile (CheminTemp)
                    End If
     
                Next pj
            Next LeMail
            Set LesMails = Nothing
        Else
            MsgTxt = "Pas de pièce jointe!!"
            MsgBox MsgTxt
        End If
     
    End Sub
    Sub GetSelectedItems()
     
        Dim myolApp As New Outlook.Application
        Dim myOlExp As Outlook.Explorer
        Dim myOlSel As Outlook.Selection
        Dim ObjItem As Object
        Dim ObjMail As Outlook.MailItem
        Dim MsgTxt As String
        Dim x As Integer
     
        MsgTxt = "Vous devez selectionner un seul mail!!!"
     
        Set myOlExp = myolApp.ActiveExplorer
        Set myOlSel = myOlExp.Selection
        x = myOlSel.Count
     
        If x <> 1 Then
           MsgBox MsgTxt
           Exit Sub
        End If
        'pour ouvrir le mail sur lequel on est positionné
        myOlSel.Item(x).Display
        'ca c'est pour le mettre dans la variable précedente
        Set ObjItem = myOlSel.Item(x)
     
        If Not ObjItem.Class = olMail Then Exit Sub
     
        Set ObjMail = ObjItem
        Call MacroGED(ObjMail)
     
        ObjItem.Close olDiscard
     
    End Sub

  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
    Beaucoup de réponses dans mon blog ;-)
    https://www.developpez.net/forums/bl...dll-com-addin/

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Merci pour toutes ses infos, mais ça dépasse de loin toutes mes compétences (DLL, Addin, automatiser Outlook à partir d'une autre application.....).

    Je vais voir si en remplaçant le projet *.OTM si ça fonctionne, généralement, je n'aurais plus à revenir sur le code VBA des macros et pour sûr il existe aucune autre macro dans Outlook sur les postes clients.

    Quant à la perte de l'onglet "Développeur", je fermerai et ouvrirai Outlook pour le récupérer.

    Merci vraiment beaucoup pour tous ces documents publiés et toute l'énergie dépensée pour aider la communauté.

    Rodolphe.

  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
    Tu peux effectivement remplacer le fichier vbaproject.otm sur chaque pc demande juste s ils ont des macros Outlook! Mais ça reste rare.
    Il n y.a.pas.de.raison que tu perdez l onglet développeur c est la première fois que je lis cela.

    Pas.contre tu peux mettre ton icône de lancement ailleurs que dans cet onglet

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

Discussions similaires

  1. Extraire des pièces jointes et les sauvegarder
    Par LANGAZOU dans le forum VBA Outlook
    Réponses: 30
    Dernier message: 17/04/2019, 14h53
  2. [OL-2007] Réattacher des pièces jointes pour un nouveau mail.
    Par Flodelarab dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 24/04/2015, 12h20
  3. [XL-2010] Pièces jointes pour les utilisateurs
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/01/2015, 19h55
  4. [OL-2003] enregistrement de pièce jointe pour les nuls
    Par enicnath dans le forum Outlook
    Réponses: 3
    Dernier message: 20/10/2014, 18h53
  5. Des pièces jointes dans les groupes sociaux
    Par SmileSoft dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 16/11/2010, 23h30

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