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 :

Sélection message - lancer macro permettant de détacher les PJ et les imprimer


Sujet :

VBA Outlook

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    comptable
    Inscrit en
    Août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Août 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Sélection message - lancer macro permettant de détacher les PJ et les imprimer
    Bonjour Tout le monde,

    J'avais une macro qui me permettait de détacher les pièces jointes des messages sélectionnés, de les enregistrer sur c://temp et de les imprimer sur l'imprimante par défaut elle marchait bien, mais dès que je suis passé sur un ordi 64, celle-ci ne marchait plus.

    Auriez-vous en stock le code pour le faire?

    Vous en remerciant par avance.

  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
    Salut c est un pc 64 bit soit mais ce qui est important c est la version de office 32 ou 64 bits ?
    Tu devrais publier ici le code que tu utilisais

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    comptable
    Inscrit en
    Août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Août 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oliv, Tu as peut être raison, version 64 pour excel.

    Voici le code que j'utilisais avant, c'est la Fonction Declare qui ne lui plaît pas maintenant :

    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
     Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hWnd As Long, ByVal lpszOp As String, _
        ByVal lpszFile As String, ByVal lpszParams As String, _
        ByVal lpszDir As String, ByVal fsShowCmd As Long) As Long
     
    'la macro d'impression, chems= chemin complet de la piece jointe
    Sub printPDF(chems)
        Dim Res As Long
        Dim chemin_de_MaPj As String
        chemin_de_MaPj = chems
        Res = ShellExecute(0, "print", chemin_de_MaPj, "", "", 0)
    End Sub
     
    Sub PrintAllPDF()
     
        Dim strFileName As String
        Dim strPath As String
     
        strPath = "c:\temp\"
        strFileName = Dir(strPath + "*.pdf", vbNormal)
        Do While strFileName <> ""
     
            LeFichier = strPath + strFileName
            printPDF (LeFichier)
            strFileName = Dir
        Loop
     
    End Sub
     
    Sub detache_PJ()
        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
        For Each LeMail In LesMails
                 Dim pj As Attachment
                For Each pj In LeMail.Attachments
                    If Right(UCase(pj.FileName), 4) = ".PDF" Then
                        LeFichier = "c:\temp\" & pj.FileName
                        pj.SaveAsFile (LeFichier)
     
                    End If
                Next pj
        Next LeMail
        Set LesMails = Nothing
    End Sub
     
    Sub detache_et_imprime()
        Shell "C:\temp\color_printer.bat", 0
     
        Call detache_PJ
        Call PrintAllPDF
     
        MsgBox "Opération terminée, cliquez sur OK pour remettre l'imprimante par defaut"
        Shell "C:\temp\kyofax_printer.bat", 0
        Kill "C:\temp\*.pdf"
     
    End Sub

    Cordialement,

  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
    ESSAYE EN REMPLAÇANT LA DÉCLARATION PAR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #If Win64 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #End If

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    comptable
    Inscrit en
    Août 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Août 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    ESSAYE EN REMPLAÇANT LA DÉCLARATION PAR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Cela a marché comme ceci, je te remercie Oliv.

    Bon week end

Discussions similaires

  1. macro permettant de lister les fichiers d'un dossier ou répertoire
    Par sophie76 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/12/2015, 20h24
  2. [XL-2010] Macro permettant d'afficher les différents projets d'un agent par semaine partant d'un planning
    Par jojolaterreur dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/12/2014, 18h10
  3. Réponses: 1
    Dernier message: 09/05/2012, 10h22
  4. [Toutes versions] [VBA] Macro permettant de compter les caractères de chaque ligne d'un tableau
    Par SiLiCe dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/07/2011, 15h06
  5. Réponses: 1
    Dernier message: 24/03/2006, 10h20

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