• Initiateur de la discussion Initiateur de la discussion Claudy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Claudy

XLDnaute Accro
Bonjour,
Je rame depuis trois heures....
Via PDF Creator, j'arrive à transformer un fichier .xls en un .PDF,
Celui ci est placé dans un dossier "zaza" et nommé "Archive du date du jour.PDF"
Mon prob: comment envoyer ce fichier par mail et par macro ?
Merci d'avance,
Claudy
 
Re : envoyer un .PDF

hello
il faut déjà avoir le programme acrobat d'adobe (680€ la version pro :s) . ce programme te rajoute un module qui converti tes feuilles excel.

je sais qu'il existe d'autres solutions mais assez galéres...
fait une recherhce avec les mots clefs PDF tu devrais trouver pas mal d'exemples "gratuit".
 
Re : envoyer un .PDF

Re bonjour et merci kiki...
mais malheureusement je suis derriere un terrible parefeu qu'il m'est impossible de parametrer et donc impossible de télécharger ton fichier,
Pourrait tu m'envoyer le code ici ,ou me donner une autre adresse!
Merci
Claudy
 
Re : envoyer un .PDF

Code:
Option Explicit

'   sous VBA Menu Outils | Références  Cocher PDFCreator
'                                      Cocher Microsoft CDO for Exchange xxxx Library

Sub Tst_PdfCreator()
Dim objMessage As CDO.Message
Dim JobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
       
    sNomPDF = "Essai_PdfCreator.pdf"
    sCheminPDF = ActiveWorkbook.Path & Application.PathSeparator

    If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

    Set JobPDF = CreateObject("PDFCreator.clsPDFCreator")

    With JobPDF
        If .cStart("/NoProcessingAtStartup") = False Then
            MsgBox "Initialisation de PDFCreator impossible", vbCritical + vbOKOnly, "PDFCreator"
            Exit Sub
        End If
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        .cOption("AutosaveDirectory") = sCheminPDF
        .cOption("AutosaveFilename") = sNomPDF

        '   0=PDF, 1=Png, 2=jpg, 3=bmp, 4=pcx, 5=tif, 6=ps, 7=eps, 8=txt
        .cOption("AutosaveFormat") = 0

        .cClearCache
    End With

    ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

    'Fichier dans la file d'attente
    Do Until JobPDF.cCountOfPrintjobs = 1
        DoEvents
    Loop
    JobPDF.cPrinterStop = False

    'Attendre que la file d'attente soit vide
    Do Until JobPDF.cCountOfPrintjobs = 0
        DoEvents
    Loop
    
    Do Until Dir(sCheminPDF & sNomPDF) <> ""
        DoEvents
    Loop
       
    JobPDF.cClose
    Set JobPDF = Nothing

    Set objMessage = CreateObject("CDO.Message")
    With objMessage
        .Subject = "Example"
        .From = "abcd@wanadoo.fr"
        .To = "defg@wanadoo.fr"
        .TextBody = "Texte dans le corps de message"
        .AddAttachment sCheminPDF & sNomPDF
        .Send
    End With

    Set objMessage = Nothing
        
End Sub
 
Dernière édition:
Re : envoyer un .PDF

Salut tlm,

Salut kiki29,

On a été en contact il y a peu pour un pb similaire, la différence c'est que je crée enbviron 145 fichier avec PDFCreator et que lorsqu'on boucle, suivant l'ordi ,ca plante.
J'ai réussi par m'en sortir en gérant les erreurs et en "tuant" PDFCreator, s'il y a erreur.
Pour l'envoi des mails normalement il n'y a pas de probleme. J'ai ajouté au code que tu propose un accusé de réception.
Si ca interresse, je peux envoyer un fichier xls ou le code correspondant.

A+

Zeb
 
Re : envoyer un .PDF

Bonjour tlm,


Ci joint mes codes en txt, qui me servent à créer des fichiers pdf, puis les envoyer par mail à une adresse spécifiée.
Je gère ainsi une base de notes pour 150 étudiants ,qui ont un matricule, mais l'ordre des étudiants n'est forcément le même sur mes différentes feuille.
J'ai essayé de mettre suffisament d'explication pour que ce soit clair.
Si besoin d'explications n'hésitez pas.
Message pour kiki29, n'hésite pas à me proposer une simplification de mon code, j'ai déjà tenu compte de tes remarques.

A+
Zeb
 

Pièces jointes

Re : envoyer un .PDF

Salut Zeb, une 1ere remarque concernant ceci :
worksheet(1) : feuille "SEMESTRE 1"
worksheet(2) : feuille "relevé SEMESTRE 1"
worksheet(3) : feuille "trombi"
worksheet(4) : feuille "macros"

Sous VBE [Alt+F11] [F4]
renommer tes feuilles worksheet(x)
en utilisant la propriété (name) pas name sans parenthèses
par exemple worksheet(1) : feuille "SEMESTRE 1" en ShSemestre_01
et mets à jour le code des macros en concordance avec cette dénomination
cela t'evitera des surprises si tu permutes les onglets ...
 
Dernière édition:
Re : envoyer un .PDF

Autres Remarques
Code:
Dim debutlig As Integer
Dim finlig As Integer

'worksheet(4)  : feuille "macros"

Worksheets(4).Select
Range("D11").Select
debutlig = ActiveCell
Devient
Code:
Dim debutlig As Long
Dim finlig As Long

ShMacros.Range("D11").Select
debutlig = ActiveCell.Row

Code:
  For k = debutlig To finlig
    Range("F" & k).Select
    sNomPDF = ActiveCell
	.....
Devient
Code:
  ShTrombi.Activate
  For k = debutlig To finlig
	sNomPDF = ShTrombi.Range("F" & k)
	.....
	Adressemail = ShTrombi.Range("E" & k)
etc
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
172
Retour