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 !

lioneldu47

XLDnaute Occasionnel
Bonjour le forum,​

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...

Merci pour votre aide😀
 
Re : Archiver en pdf

Bonjour,

Intéressé par la démarche, j'ai essayé, mais cela ne fonctionne pas sur mon poste de travail en réseau.

J'ai également téléchargé le programme de Ti (XLS2PDF), mais il ne fonctionne pas non plus.

Voici 2 copies d'écran, avec les messages d'erreur.
Si vous avez une explication, celle-ci est la bienvenue.

A+
 

Pièces jointes

  • PdF.jpg
    PdF.jpg
    52.6 KB · Affichages: 50
  • PdF1.jpg
    PdF1.jpg
    50.8 KB · Affichages: 43
  • PdF.jpg
    PdF.jpg
    52.6 KB · Affichages: 50
Re : Archiver en pdf

Bonjour à tous,

Juste pour rassurer Manu : aucun souci pour moi sur un classeur 2003 et PDF Creator 0.9.9 (sur le dernier classeur déposé par Lionel donc en *.xls)

A++ Manu et Bravo pour ta pugnacité 🙂
A+ à tous
 
Re : Archiver en pdf

Bonsoir à tous,

Je possède Excel2003 et PDFCreator 0.9.9

Pour revenir au post 17 :

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

Automation.jpg

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.

Et enlèves cette ligne là :

Code:
RetVal = Shell("Taskkill /IM PDFCreator.exe /F", 0)

Il me semble qu'elle n'est nécessaire que dans certaines versions antérieures de PDFCreator.

Certains spécialistes comme Kiki29 pourrait nous le confirmer.

D'ailleurs, je n'en comprends pas la signification.

Pour plus de clarté, fais aussi une recherche dans Google avec les termes "Liaison anticipee" ou "Liaison tardive"

Cordialement Klin89

Ps : Attention en rouge des variables que j'avais personnellement déclarées dans mon code.
 
Dernière édition:
Re : Archiver en pdf

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...

Merci beaucoup
 
- 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

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
246
Réponses
3
Affichages
673
Réponses
10
Affichages
547
Réponses
3
Affichages
887
Retour