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

Excel Discussion :

envoi de pdf par mail via vba


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 95
    Par défaut envoi de pdf par mail via vba
    Bonjour à tous.

    Je fais appel a vos connaissance et vos idée pour m'aider a résoudre ce que je veux faire.

    Je m'explique j'ai tout un tas de macro qui exécute un certain nombre de chose mdr.
    En fin bref

    je voulais savoir j'ai une macro qui me permet de sauvegarder en PDF quand j'ai finaliser ma fiche d'intervention.

    J'ai ajouter un bouton pour envoyer un mail quand cette intervention est terminée jusque la pas de soucis.

    Mais j'aimerais y ajouter le pdf que je viens juste de sauvegarder.

    Mais le soucis c'est que ce PDF la est pas le seul enregistrer a l'endroit ou j'enregistre ??

    Avez vous tout bien saisie ou pas.

    ou voulez vous des photos de ce que je compte faire.


    Cordialement

    Romain

    PS: Bon weekend à vous

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, regarde PDFCreator Génération PDF puis envoi par mail via CDO, en l'adaptant à ton contexte.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 95
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, regarde PDFCreator Génération PDF puis envoi par mail via CDO, en l'adaptant à ton contexte.
    Si tu veux mon PDF est déjà crée via cette partit de code.

    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
    Private Declare Function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long
    Public Function Enregistrement_PDF(index As Long)
        Dim MyBench As String
        Dim ID As String
        Dim Fichier As String
        Dim Opérations As String
     
        MyBench = Sheets("BDD").Range("H" & index).Value
        ID = Sheets("BDD").Range("A" & index).Value
     
     
        MaintenancedataFilePath = "\\H61sys\essais$\SERVICE\MAINTENANCE PREVENTIVE\Archivage fiche d'intervention maintenance\2016\" & MyBench & "\" & ID & ".pdf"
     
        'MaintenancedataFilePath = Environ("UserProfile") & "\Desktop\2016\" & MyBench
        SHCreateDirectoryEx 0, MaintenancedataFilePath, ByVal 0&
     
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=MaintenancedataFilePath & "\" & ID & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
        Fichier = "H:\SERVICE\MAINTENANCE PREVENTIVE\Archivage fiche d'intervention maintenance\Fichier excel\Archivage fiche d'intervention maintenance"
        ThisWorkbook.SaveAs Fichier
     
     
    End Function
    mais je voudrais récupéré juste le PDF qui convient bien.

    c'est la que je butte

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,
    Si tu as le nom du fichier et le chemin d'accès ( "C:\monchemin") avec le code suivant dans ton envoi de mail, ça devrait marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Attachments.Add Chemin & "\" & nom & ".pdf"
    Au cas ou je rajoute la macro complete de l'envoi duquel la ligne viens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set ObjOutlook = New Outlook.Application
        Set oBjMail = ObjOutlook.CreateItem(olMailItem)
        With oBjMail
            .To = Cells(t, 9) ' le destinataire
           .Subject = Cells(t, 10) ' l'objet du mail
           .Body = Cells(t, 11) 'le corps du mail ..son contenu
           .Attachments.Add Chemin & "\" & nom & ".xlsx" '"C:\Data\essai.txt" ' ou Nomfichier
           .Display
            SendKeys "^{ENTER}" 'pour éviter la confirmation par outlook
            DoEvents
        End With

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 95
    Par défaut
    Voici mon code pour envoyer

    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
    Sub SendMailData()
     
    Dim Fichier As String
    Dim MonOutlook As Object
    Dim MonMessage As Object
    Dim MyBench As String
     
     
     
     
    Fichier = "H:\SERVICE\MAINTENANCE PREVENTIVE\Archivage fiche d'intervention maintenance\Fichier excel\Archivage fiche d'intervention maintenance"
    ThisWorkbook.SaveAs Fichier
     
    MyBench = Sheets("Fiche d'intervention").Range("I10").Value
     
     
      Set MonOutlook = CreateObject("Outlook.Application")
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.BodyFormat = 2
           Corps = "<HTML><BODY>"
             MonMessage.To = ""
        MonMessage.cc = ""
        'MonMessage.Attachments.Add =""
        MonMessage.Subject = " Compte rendu d'intervention maintenance"
      ' Le corps du message est divisé en 2 lignes :
    Corps = Corps & "Bonjour Christophe,"
      ' <p> = Touche ENTER
    Corps = Corps & "<p>"
       Corps = Corps & "<p> Voici joint au mail le compte rendu d'intervention maintenance sur le  " & "<b>" & MyBench & "</b></p>"
      Corps = Corps & ""
      Corps = Corps & "</BODY></HTML>"
      MonMessage.HTMLBody = Corps
      MonMessage.Display
     
      MonMessage.OriginatorDeliveryReportRequested = True
      MonMessage.ReadReceiptRequested = True
      ReadReceiptRequested = True
      Set MonOutlook = Nothing
     
     
    Workbooks("Archivage fiche d'intervention maintenance").Close False
     
    End Sub

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rom1deh Voir le message
    Mais j'aimerais y ajouter le pdf que je viens juste de sauvegarder.
    Mais le soucis c'est que ce PDF la est pas le seul enregistrer a l'endroit ou j'enregistre ??
    Etant donné que, par ton code, tu connais le chemin et le nom du PDF que tu viens d'enregistré, je ne vois pas comment tu pourrais avoir un problème pour le récupérer.

    A moins que ce soit deux macros différentes.
    Dans ce cas, le mieux est de placer dans ta feuille Excel une référence à ce PDF (par exemple dans un hyperlink sur ta cellule "A" & Index).
    Au pire, tu scrutes tous les PDF du répertoire avec une boucle While et une fonction Dir et tu gardes le nom de celui qui a été créé en dernier avec un FileDateTime.

  7. #7
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re, ce n'est quand même pas sorcier d'extraire la procédure concernant CDO et de l'intégrer à ton code en lui passant ton nom de fichier pdf et en adaptant les lignes indiquées à ton contexte ( la seule contrainte avec ce code : pas de proxy )
    C'est également en Late Binding et non Early ( pas de références à cocher )

    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
    Private Sub EnvoiCDO(sNomFichier As String)
    Dim Msg As Object
    Dim Conf As Object
    Dim sBody As String
    Dim Flds As Variant
     
        Set Msg = CreateObject("CDO.Message")
        Set Conf = CreateObject("CDO.Configuration")
     
        Conf.Load -1
        Set Flds = Conf.Fields
        With Flds
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            ' à adapter à votre contexte
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.xxxxx.fr"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With
     
        sBody = "Test"
     
        With Msg
            Set .Configuration = Conf
            ' à adapter à votre contexte
            .To = "wwwww@xxxxx.fr"
            .CC = ""
            .BCC = ""
            ' à adapter à votre contexte
            .From = """Triboulet"" <yyyyy@zzzzz.fr>"
            .Subject = "Test"
            .TextBody = sBody
            .AddAttachment sNomFichier
            .Send
        End With
     
        Set Conf = Nothing
        Set Msg = Nothing
    End Sub

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 95
    Par défaut
    [QUOTE=kiki29;8570378]Re, ce n'est quand même pas sorcier d'extraire la procédure concernant CDO et de l'intégrer à ton code en lui passant ton nom de fichier pdf et en adaptant les lignes indiquées à ton contexte ( la seule contrainte avec ce code : pas de proxy )
    C'est également en Late Binding et non Early ( pas de références à cocher )

    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
    Private Sub EnvoiCDO(sNomFichier As String)
    Dim Msg As Object
    Dim Conf As Object
    Dim sBody As String
    Dim Flds As Variant
     
        Set Msg = CreateObject("CDO.Message")
        Set Conf = CreateObject("CDO.Configuration")
     
        Conf.Load -1
        Set Flds = Conf.Fields
        With Flds
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            ' à adapter à votre contexte
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.xxxxx.fr"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With
     
        sBody = "Test"
     
        With Msg
            Set .Configuration = Conf
            ' à adapter à votre contexte
            .To = "wwwww@xxxxx.fr"
            .CC = ""
            .BCC = ""
            ' à adapter à votre contexte
            .From = """Triboulet"" <yyyyy@zzzzz.fr>"
            .Subject = "Test"
            .TextBody = sBody
            .AddAttachment sNomFichier
            .Send
        End With
     
        Set Conf = Nothing
        Set Msg = Nothing
    End Sub

    Bonjour à tous

    c'est pas l'histoire que ceci soit sorcier ou non.

    Mais si vous voulez mes PDF sont crée et vont s'enregistrer dans le bon dossier si le dossier est pas crée il le met en place.

    sa je sais faire mais quand je veux récupéré mon PDF sa peut être très bien le dernier ou non.

    c'est sa que j'ai du mal a saisir comment faire pour pas qu'il se trompe de PDF.

    car mettre le lien ou une pièce jointe j'y arrive.

    je mettrais des photos lundi et le fichier aussi.

    car c'est sur le réseau du travaille.

    Merci de votre Aide

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 95
    Par défaut
    Bonjour à tous je viens vous apporter le fichier et quelques capture d'écran.

    Voila ce qui se passe quand j'enregistre sois je crée le fichier avec le non qui va bien puis je crée un notre fichier pour inséré la fiche d'intervention ou sois si le fichier est crée je viens incrémenté celui ci.

    Dossier des bancs
    Nom : Capture51.PNG
Affichages : 1011
Taille : 18,9 Ko

    Sous dossier de chaque banc avec fiche d'intervention
    Nom : Capture101.PNG
Affichages : 972
Taille : 13,6 Ko

    Quand la fiche est complétée je voudrais crée une macro qui va me chercher la bonne fiche qui va bien c'est la dessus que je bloque.

    Fichier ci-joint.
    https://www.fichier-xls.fr/2016/03/2...n-maintenance/

    PS: Quand l'userform s'ouvre cliquer sur la croix rouge.

    Puis pour accéder au macro entrer le mdp ajauxerre060694

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par rom1deh Voir le message
    Quand la fiche est complétée je voudrais crée une macro qui va me chercher la bonne fiche
    Quel critère détermine "la bonne fiche" ?

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

Discussions similaires

  1. Envoi de PDF par mail via Adobe Reader
    Par seb68270 dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 23/04/2015, 11h43
  2. Envoi Pièce Jointe par Mail via 4D
    Par mxh77 dans le forum 4D
    Réponses: 6
    Dernier message: 25/09/2007, 18h05
  3. envoie de donnée par mail via vba
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2007, 11h43
  4. Envoi page web par mail via le logiciel de messagerie
    Par Rodrick dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/07/2007, 10h02
  5. envoie automatique d'un pdf par mail via redmon
    Par ipeteivince dans le forum Windows
    Réponses: 2
    Dernier message: 29/08/2006, 19h01

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