Export d'une feuille au format PDF à partir d'un bouton

Bonsoir,

Je cale sans pouvoir trouver ma soluce... ( je ne trouve pas l'erreur " pourtant le chemin est bien spécifié,j'ai pas un autre prog qui utilise ce fichier, classeur au même nom?) je comprends plus...

( cf mon bouton /page facture)

Private Sub CommandButton1_Click()

'export de la facture au format pdf

info1 = Sheets("FACTURE").Range("S4")

info2 = Sheets("FACTURE").Range("o4")

info3 = Sheets("FACTURE").Range("S7")

info4 = Sheets("FACTURE").Range("S8")

Nom = info1 & "-" & info2 & "-" & info3 & "-" & info4 & "-" & ".xls"

ThisWorkbook.Save

ThisWorkbook.SaveAs (Nom)

ThisWorkbook.Activate

If MsgBox(" la facture est validée afin de générer le numéro automatique?", vbYesNo, "Prog.infobyfc vous informe") = vbYes Then

ChDir "C:\Users\User\Desktop open test useform"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, quality:=xlQualityStandard, incluseDocproperties:=True, ignoreprintareas:=False, _

From:=1, to:=1, openAfterpublish:=True

End If

End Sub

merci pour votre aide

MacFly

64imprime-facture.zip (105.69 Ko)

bonjour

je vois que tu enregistre le fichier au format xls, je suppose que tu utilise office 2003, d'ailleurs c'est dans ton profil.

de mémoire office 2003 ne proposait pas l'export pdf nativement la cause viens peut-etre de là...

Fred


de plus pour exporter au format pdf moi j'utilisais cette ligne dans un vieux fichier que j'ai retrouvé (mais fait sous excel 2007)

je précisait dans fichier_destianation le chemin + nom du fichier

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier_destination, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False        ' sauvegarde de la page 1 du fichier au format pdf

je ne sais pas si activesheet fonctionne

Fred

oui j'utilise un vieux 2003. J'espère pas que c'a vienne de là! si l'un de vous peut me confirmer! merci

sinon je vais essayer ton code merci

je re

bah je penses que tu peux répondre toi même.... est ce que tu peut faire manuellement fichier/enregistrer sous/format pdf ???

si non cela n'est pas possible comme cela car si tu ne peux pas le faire manuellement c'est pas avec la macro que tu va reussir.... ,

il y a une possibilité avec cette version d'office pour convertir en pdf. Il faut utiliser un convertisseur pdf tel que "pdf creator" mais faut etre sur que le logiciel pris soit installer sur les machines sur lesquelles la macro va tourner...

il y a des posts qui parle de cela a chercher car j'ai jamais fait....

fred

grrr c'a ne marche pas ! tu as essayé mon fichier sur ton PC? dis moi si c'a marche pour toi! sinon c'est ma version 2003...

merci

MacFly

Bonsoir,

Dans VBE, tu fais un double clic sur 'ExportAsFixedFormat' et tu fais F1.

Quelle est le résultat de la recherche?

Cdlt

yes c'a marche manuellement en pdf !

donc ma macro bug, ou moi

re bonsoir

je viens de vérifier le fichier mis a dispo plusieurs erreurs chez moi avant même l'export pdf

tu essaye d'enregistrer le fichier au format xls sous un nom de la forme F-MD-41975/-/28

chez moi j'ai déjà un plantage a ce niveau du fait que le "/" est un des caractères interdits....

idem en rajoutant la date cela met des "/" donc cela ne risque pas de fonctionner....

si on fait un replace "/" en "-" cela marche et l'export pdf marche aussi chez moi avec l'instruction que j'ai donné plus tôt

fred

re

Peux tu me montrer le fichier xls stp, je dois bugger sur ce coup là..

merci fred

MacFly

le caractère "/" est interdit dans le nom des fichier car cela est utilisé pour dire qu'on change de dossier

dans ta case S4 de ton onglet facture tu as si choisi la référence client 103 par exemple :

F-MD-41975/103/28

tu utilise par la suite le contenu de cette case pour enregistrer ton fichier xls et la chez moi ca plante a cause du "/"

donc j'ai modifier ton code comme suit :

Private Sub CommandButton1_Click()
'export de la facture au format pdf
info1 = Sheets("FACTURE").Range("S4")
info2 = Sheets("FACTURE").Range("o4")
info3 = Sheets("FACTURE").Range("S7")
info4 = Sheets("FACTURE").Range("S8")
nom = info1 & "-" & info2 & "-" & info3 & "-" & info4 & ".xls"
nom = Replace(nom, "/", "-")
ThisWorkbook.Save

ThisWorkbook.SaveAs (nom)
'ThisWorkbook.Activate
nom = Replace(nom, "xls", "pdf")
If MsgBox("Avez vous validé votre facture afin de générer le numéro automatique?", vbYesNo, "Prog.infobyfc vous informe") = vbYes Then

ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\fred\Desktop\" & nom, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End If
End Sub

met un point d'arret sur mon premier replace er regarde le contenu de ta variable "nom"

apres modif cela fonctionne chez moi

le chemin est a adapter en fonction de chez toi : "C:\Users\fred\Desktop\"

rappel je suis sous excel 2007

fred

94imprime-facture.xlsm (107.96 Ko)

Merci Fred

le fichier ici refuse d'ouvrir le pdf sans doute ma version excel 2003 ...

Rechercher des sujets similaires à "export feuille format pdf partir bouton"