Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
J'ai un petit problème pour enregistrer en pdf une feuille excel. J'arrive à le faire à l'aide d'une macro mais mon problème est pour le nom du fichier.Je n'arrive pas à le changer. J'aimerais que le nom du fichier prenne la valeur de deux cases par exemple D3 et D4. Ces valeurs changent à chaque fois...
Voici ma macro qui fonctionne mais toujours avec le même nom...
Sub Archiver1()
Range("C1:I58").Select
AL = Range("F3,I33")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\pascal\Bureau\Archive Facture\1.pdf", Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
En rouge est le nom que je veux changer par la valeur d'une case...
Personnellement, j'obtiens l'erreur ci-dessous en déclarant la variable comme ceci sans l'affecter par la suite.
Code:
Dim pdfjob As New PDFCreator.clsPDFCreator
Par contre en utilisant la liaison tardive comme indiqué au post 18.
La déclaration :
Code:
Dim pdfjob As Object 'liaison tardive
Puis l'affectation :
Code:
Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
Tout fonctionne normalement.
La fin de ton code comme ceci :
Code:
.../...
With pdfjob
'La condition ci-dessous empêche l'ouverture de la boite de dialogue de PDFCreator
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = [COLOR="Red"]sCheminPDF[/COLOR]
.cOption("AutosaveFilename") = [COLOR="red"]sNomPDF[/COLOR]
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Convertit le document en PDF
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Attend que le document soit entré dans la file de Création
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Attend que la Création du document PDF soit terminée
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End Sub
Au post 19, tu as affecté 2 fois ta variable pdfjob dans le code transmis.
Bonjour, j'ai une autre question pour vous concernant le même suget;
J'imprime en PDF avec le code suivant :
Code:
'imprime
Filename = "C:\Test\" & ActiveSheet.Range("[COLOR="Red"]C1[/COLOR]").Value & ".pdf"
SendKeys Filename & "{ENTER}", False
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Adobe PDF sur Ne03:", Collate:=True
En rouge, la vaeur que je veut utiliser comme nom...
Je l'ai inséré dans une boucle mais, lorsque j'arrive à la deuxième impression, il me redemande un nom de fichier, comme si il n'allait plus lire ma cellule "C1".
Je trouve ce code un peu moins long que ceux déjà cité dans ce post et je voulais savoir si vous aviez une solution pour moi...
- 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