Impression en PDF

Bonsoir le forum,

J'aimerais imprimer les factures, devis, et les situations en format pdf. (Pour les envoyer par mail)

J'aimerais utiliser l'extension (.pdf) que propose Office 2007.

J'ai paramétré "HP Deskjet F2200 series" comme imprimante par défaut.

Lorsque je clic sur l'icone ci-dessus j'aimerais qu'avant de créer le fichier pdf, enregistre le fichier (cela permettra de nommer le fichier avant la création du fichier pdf)

Une fois cliqué sur l'icone enregistré, le fichier se nomme automatiquement comme ceci : Facture N°100 - TEST (TEST).xslm

J'aimerais que le fichier pdf qu'on a crée se nomme automatiquement comme : Facture N°100 - TEST (TEST).pdf

Et enregistrer ce fichier dans le bureau du pc.

bonsoir ronibo

situ a regarder mon classeur qui sur excel application tu verra que lorsque j'enregistre une facture sur c:\facturation en plus d'un sous dossiers pour les factures et devis y en a aussi pour les facturepdf et devispdf+ sav et acompte ils s'enregistre en même temps

comme je te l'ai dit tu pourra en tirer peut etre de quoi finir le tien donnant donnant

Pascal

Bonsoir,

J'ai pas trop compris ton message

Il se trouve ou ton fichier exactement ?

A+

re

voici un lien

https://www.cjoint.com/c/CHlxObIZ7WN

bonne soirée

Pascal

Bonsoir,

Une solution que j'utilise pour la création de PDF j'ai quelques peu adapter à ce que je vois de ton fichier (je n'ai pas la bonne version d'excel).

En A1 mettre le chemin ou tu veux que ca s'enregistre (police blanche de préférence) comme ça pas vu sur la facture

Sub PrintToPDF()
'Impression au format PDF
    Dim pdfjob As PDFCreator.clsPDFCreator
    Dim sPDFName As String
    Dim sPDFPath As String
    'Définition du nom de fichier à exporter
    sPDFName = Sheets("Akisti Bat").Range("H10").Value & Sheets("Akisti Bat").Range("H11").Value & " " & Sheets("Akisti Bat").Range("A12").Value & ".pdf"
    'Test si dossier existe, sion on le créer via la fonction RépertoireExiste
    Call RépertoireExiste(Sheets("Akisti Bat").Range("A1"))
    'Chemin du dossier pour l'enregistrement
    sPDFPath = Sheets("Akisti Bat").Range("A1") & "\" & Sheets("Akisti Bat").Range("E4") & "\"
    'Vérifier si la feuille est vide ou non
    If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
    Set pdfjob = New PDFCreator.clsPDFCreator
    With pdfjob
        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") = sPDFPath
        .cOption("AutosaveFilename") = sPDFName
        .cOption("AutosaveFormat") = 0    ' 0 = PDF
        .cClearCache
    End With
    'Imprime le document en PDF
    ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
    'Attendre jusqu'à ce que l'impression soit dans la file d'attente
    Do Until pdfjob.cCountOfPrintjobs = 1
        DoEvents
    Loop
    pdfjob.cPrinterStop = False
    'Attendre que PDF Creator libère les objets
    Do Until pdfjob.cCountOfPrintjobs = 0
        DoEvents
    Loop
    pdfjob.cClose
    Set pdfjob = Nothing
End Sub
Function RépertoireExiste(Chemin As String) As Boolean
On Error Resume Next
RépertoireExiste = GetAttr(Chemin) And vbDirectory
    If RépertoireExiste = True Then
        Exit Function
    Else
        MkDir (Chemin)
    End If
End Function

Bonsoir Fred

Merci pour ton code

Je crois que je dois installer PDF CREATOR, je me trompe?

Si oui, malheurement j'ai pas l'autorisation d'installer des logiciels sur un pc d'entreprise et je suis obligé de passer par celui d'office

Bonsoir,

Option Explicit

Sub SavePDF()
Dim LePath, xlsm, pdf As String
Application.ScreenUpdating = False
  LePath = "Y:\Desktop\" 'Définir le dossier de sauvegarde
   xlsm = LePath & "Facture N°" & [I10] & " " & [G14] & " (" & [A12] & ").xlsm"
  pdf = LePath & "Facture N°" & [I10] & " " & [G14] & " (" & [A12] & ").pdf"
  Me.SaveAs xlsm
  Me.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdf
End Sub

Le "Me.saveAs xlsm" va peut-être rentrer en conflit avec avec votre wb_beforesave (que j'ai assez rapidement supprimé n'aimant pas être surpris par des events... ).

Donc à voir s'il faut rajouter un test au boolean pour éviter tout ça.

Cdt,

Darzou

bonsoir,

merci pour ton code

mais j'ai une erreur dans

Me.SaveAs xls

Il me dit : Utilisation incorrecte du mot clé Me

a+

Il faut mettre le code dans le module de la feuille sinon ça ne passe pas pour le Me.

Le mieux serait de toutes façons changer cette ligne en:

thisworkbook.savecopyas xlsm

comme ça on crée juste une copie et on ne crash pas l'original.

Cdt,

Darzou

re,

et la je bloc avec le me du dessous

même erreur

j'ai vu que grâce à ton code on peut nommer le fichier pdf sans avoir besoin du nom de xslm

Je préfère supprimer la sauvegarde du xslm,

grâce à ce bouton sauvegarder quand pdf

a+

Darzou a écrit :

Il faut mettre le code dans le module de la feuille

Sinon on peut toujours s'en sortir avec du activesheet, sheets(1), feuil1 voire sheets(nom_de_la_sheet)...

Ronibo a écrit :

Je préfère supprimer la sauvegarde du xslm

Du coup même plus besoin de jouer du boolean.

Cdt,

Darzou

Re

A part quelques terme, ça reste du chinois pour moi tout ça ^^

A+

Option 1: Vous copiez le code dans le module de la feuille (dans l'editeur de macro, fenêtre explorateur d'objets, vous avez des modules et des feuilles. Saisissez le code dans la feuille où se trouve le bouton. Le Me se réfère à l'objet dans lequel est placé le code)

Option 2: Laissez le code là où vous semblez l'avoir mis et remplacez Me par Activesheet. C'est un peu moins propre mais ça passe aussi.

Cdt,

Darzou

Re,

Donc je colle la même chose dans un module puis dans la feuille ou y'a le code du bouton. C'est bien ça?


Re,

Comment on fait si le bouton est pas un bouton de commande?

Cdt,

Darzou

Merci pour le fichier

mais j'ai une erreur avec une croix rouge (400)

A moins que vous n'ayez la même arborescence que moi, il vous faut changer le début du lien...

C'est bon j'ai corrigé la source

Lorsque je clic sur le bouton pour créer le fichier il se passe rien , pas d'erreur rien

J'ai bien sur affecté la macro

Et...?

Le pdf se crée (du moins si ça ne débogue pas c'est que la procédure est allée jusqu'au bout). Visuellement c'est normal qu'il ne se passe rien. Si vous voulez afficher le pdf:

Me.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdf, OpenAfterPublish:=True

Darzou

Re

J'ai une erreur dans

Filename:=pdf

Pdf qui est en jaune

A+


Re

C'est bon j'ai réussi a créer le fichier,

Mais je n'arrive toujours pas a l'ouvrir après la création du fichier

Rechercher des sujets similaires à "impression pdf"