Comment diriger un enregistrement PDF

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 !

oasis_1

XLDnaute Occasionnel
Bonjour le Forum,

Nouvelle question j'ai 2 macro qui s'enchaine et qui fonctionne tres bien je souhaiterais maintenant en inclure une 3ème pour enregistrer mon PDF dans un dossier en particulier.

1: Bouton :

Private Sub CommandButton5_Click()
Sheets("Feuil 1").Unprotect
Dim Cpt
Cpt = 0
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
'incrémente le compteur
Cpt = Cpt + 1
'définition de la zone d'impression
Dim ZoneImpr As String
ZoneImpr = IIf(Cpt = 1, tabAdresses(i), tabAdresses(i) & "," & ZoneImpr)
ActiveSheet.PageSetup.PrintArea = ZoneImpr
'impression cf. bas de module
' ActiveSheet.PrintPreview 'Out
End If
Next i
Unload Me
Call Macro3imprim
Unload Me

End Sub


2: Module :

Sub Macro3imprim()
Dim temp1(), temp2()

For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex <> xlNone Then
n = n + 1
ReDim Preserve temp1(1 To n)
ReDim Preserve temp2(1 To n)
temp1(n) = c.Address
temp2(n) = c.Interior.ColorIndex
c.Interior.ColorIndex = xlNone
End If
Next c
ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="DocuCom PDF Driver"
For i = 1 To n
Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
'
End Sub


à se stade ma feuille est imprimé en pdf mais une boite de dialogue me demande dans quel dossier je veux sauvegarder.
j'ai donc pensé à un autre module:

Sub enregistrer()
Dim Chemin As String, fichier As String

Chemin = "F:\à voir\Poste de Travail\"
'Ajoute la date du jour et l'heure dans le nom du fichier
fichier = Range("e62").Value & " 1 p. " & Range("d62").Value & " _ " & Format(Date, "dd mm yyyy") & ".xls"
ActiveWorkbook.SaveCopyAs Chemin & fichier
End Sub

mais je n'arrive pas à imbriquer ce nouveau module.

Merci par avance pour votre aide
 
Re : Comment diriger un enregistrement PDF

Salut,

Je ne suis pas certains d'avoir saisie ce que tu voulais car je ne vois pas dans ton code ou tu fais ouvrir une boite de dialogue pour la sauvegarde.
En tout cas, tu peux toujours imbriquer tes codes comme ceci :
Code:
Private Sub CommandButton5_Click()
[COLOR=green]'...[/COLOR]
Next i
Unload Me
Call Macro3imprim
Call enregistrer
End Sub

@+
 
Re : Comment diriger un enregistrement PDF

Bonjour,

Salut,

Je ne suis pas certains d'avoir saisie ce que tu voulais car je ne vois pas dans ton code ou tu fais ouvrir une boite de dialogue pour la sauvegarde.
En tout cas, tu peux toujours imbriquer tes codes comme ceci :
Code:
Private Sub CommandButton5_Click()
[COLOR=green]'...[/COLOR]
Next i
Unload Me
Call Macro3imprim
[COLOR="Red"]Call enregistrer[/COLOR]
End Sub

@+

J'ai déjà essayer mais le problème est que dès que j'appuis sur mon bouton "CommandButton5" une boite de dialogue " enregistrer sous " apparait et donc le Call enregistrer ne sert à rien.

je pense qu'il faut intervenir sur le module "Macro3imprim" mais comment ???
 
Re : Comment diriger un enregistrement PDF

re,

Ok !!!
Bon, il faut faire la sauvegarde avant l'impression en pdf alors. Je dirai donc quelque chose du genre :
Code:
Sub Macro3imprim()
Dim temp1(), temp2()
For Each c In ActiveSheet.UsedRange
    If c.Interior.ColorIndex <> xlNone Then
        n = n + 1
        ReDim Preserve temp1(1 To n)
        ReDim Preserve temp2(1 To n)
        temp1(n) = c.Address
        temp2(n) = c.Interior.ColorIndex
        c.Interior.ColorIndex = xlNone
    End If
Next c
Call enregistrer
ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="DocuCom PDF Driver"
For i = 1 To n
    Range(temp1(i)).Interior.ColorIndex = temp2(i)
Next i
End Sub

@+
 
Re : Comment diriger un enregistrement PDF

Re,

Oui mais ça enregistre la feuille mais pas le PDF or ce que je veux c'est se soit l'enregistrement du PDF qui suive le chemin du module "enregister".

Dans la configuration présente mon classeur s'enregistre dans le dossier voulu puis la boite de dialogue me demande ou je veux enregistrer mon PDF, il faut arriver à coursicutrer la boite de dialogue "enregistrer sous" du PDF, et ne pas enregistrer le classeur.

Tout un programme

@ +
 
Re : Comment diriger un enregistrement PDF

Bonjour à tous,

J'ai le même problème qu'oasis_1. Je n'ai pas trouvé de solution sur ce forum pour le moment. Je me permets donc de répondre à ce message pour qu'il soit de nouveau d'actualité 🙂. Quelqu'un aurait-il une solution pour courcircuiter la boite de dialogue "enregistrer sous" du PDF ... si toutefois il en existe une ? J'ai en effet 60 fichiers à enregistrer dans un dossier et je n'ai pas envie de faire 60 fois la manipulation.

Au plaisir de vous lire,
Og
 
Re : Comment diriger un enregistrement PDF

J'ai finalement réussi non sans mal 🙂😀
Pour ceux que ça intéresse et pour Oasis_1, voici ce que j'ai fait.
Mon but, je le rappelle, était de créer une macro permettant de générer 66 PDF automatiquement (des graphiques) dans un dossier donné.

Attention, il ne faut pas oublier d'activer AcrobatPDFMaker dans
Menu Outils de VBA -->Références.
N'étant pas très performant en VBA, toutes remarques ou suggestions sont les bienvenues !

Og

Code:
Sub ImpressionPdf()
For i = 1 To 66
    Range("A1").Select
    ActiveCell.FormulaR1C1 = i
    Application.Run "echelleCT" 'Macro qui ajuste automatiquement l'échelle du graphique
    Range("A1").Select
    
    PdfCreator
Next
End Sub


' Module PDF

Sub PdfCreator()
Dim jobPDF As Object
Dim sNomPDF As String
Dim sCheminPDF As String
 
    Jour = Format(Now(), "ddmmyyyy")
    sNomPDF = Jour & "_" & Range("A40")
    sCheminPDF = "C:\Documents and Settings\xxxxxxxxxx\test"
 
    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
    jobPDF.cClose
    Set jobPDF = Nothing
     
End Sub
 
Dernière édition:
Re : Comment diriger un enregistrement PDF

Bonsoir Ogle,

Je viens juste de trouver tes messages .

je reprend ma macro soit :

Private Sub CommandButton5_Click()
Sheets("Feuil 1").Unprotect
Dim Cpt
Cpt = 0
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
'incrémente le compteur
Cpt = Cpt + 1
'définition de la zone d'impression
Dim ZoneImpr As String
ZoneImpr = IIf(Cpt = 1, tabAdresses(i), tabAdresses(i) & "," & ZoneImpr)
ActiveSheet.PageSetup.PrintArea = ZoneImpr
'impression cf. bas de module
' ActiveSheet.PrintPreview 'Out
End If
Next i
Unload Me
'Call Macro3imprim ' remplacé par :
Call PdfCreator
Unload Me

End Sub


en remplacent call Macro3imprim par Call PdfCreator, ERREUR

" erreur d'execution '429' : un composant Active X ne peut pas creer d'objet"

en effet je ne trouve pas "AcrobatPDFMaker" dans outil Références
à ton avis que dois je faire ?????

Merci par avance
 
Re : Comment diriger un enregistrement PDF

Bonsoir,
en effet je ne trouve pas "AcrobatPDFMaker" dans outil Références
Je pense que'ogle voulait indiquer la référence PDFcreator
car à la lecture rapide du code je n'ai vu de référence qu'à ce dernier qui est gratuit alors que acrobat est payant.

Le passant qui passait sans passer...
Cordialement
 
Re : Comment diriger un enregistrement PDF

Bonjour,

Et merci pour tous ces conseil cependant je possede " pdf professionnel 4.0" et je ne trouve donc pas PDFcreator à activer dans les références.

Donc ma question que dois je trouver et comment dois-je modifier la macro

Merci par avance
 
- 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
5
Affichages
244
Réponses
10
Affichages
282
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
4
Affichages
180
Retour