D'Excel vers pdf

Bonsoir,

peut-on avec un code vba enregistrer une feuille masqué sous PDF en la renommant ?

Merci d'avance

Cordialement

Bonsoir Didier,

Oui, c'est possible. Il faut connaitre le nom de la feuille, le nom du fichier à créer et le chemin de l'emplacement futur de ce pdf.

Cdlt,

bonjour,

Vous avez un exemple de code que je pourrais tester ?

Cordialement

Bonjour toutes et tous et bon weekend (Week-end)

coucou 3Gb,

@Didier un exemple ci-joint

note la feuille BDD est masqué, la macro se lance à partir de la feuille 3 du classeur

le pdf s'ouvre et un message de confirmation, s'affiche, la ligne à modifier pour les futurs feuilles en pdf sont le Array du code, la feuille menu en cellule b3 comportera le nom du futur pdf, il suffira de choisir l'endroit on l'on souhaite avoir son pdf de créé bien entendu tout est modifiable suivant le goût

oupss une petite erreur ( à modifier)

sName = [B2] 'value from B2
NomComplet = Chemin & "\" & sName '& "MonFichier"
ztest4444

crdlt,

André

Il était presque prêt, alors j'envoie le bon

5printpdf.xlsm (26.39 Ko)

Bonjour,

J'ai l'impression qu'on fonctionne un peu à l'envers... Il faut que vous précisiez les conditions dans lesquelles vous voulez effectuer cette édition, sinon, ça compliquera la tâche.

Voici en tout cas un essai :

Sub Exporter()

dim ws as worksheet, chemin$

set ws = sheets(1)
dossier = thisworkbook.path & "\"
fichier = ws.range("A1").value & format(now, "YYMMDD HHMMSS") & ".pdf"
chemin = dossier & fichier

if dir(chemin) <> "" then
    if msgbox("Le fichier existe déjà, Voulez-vous le remplacer ?", vbyesno + vbexclamation, "Demande de confirmation") <> vbyes then exit sub
end if

call EditionPDF(ws, chemin)

end sub

Sub EditionPDF(ws as worksheet, chemin$)
application.screenupdating = false
Feuille.visible = true
Feuille.exportasfixedformat type:=xltypepdf, filename:=chemin, ignoreprintareas:=false
Feuille.visible = false
application.screenupdating = true
end sub

Cdlt,

Edit : Salut André, Salut Optimix ! Je n'ai pas rafraichi l'écran, j'ai cru m'être trompé de sujet .

Re,

coucou Optimix, le classeur n'est pas pour le fil Pompier planning -;)

crdlt,

André

Bonjour André,

Je ne me suis pas foulé :

J'ai utilisé ce fichier pour masquer la liste des personnels et comme il n'y a rien de confidentiel dedans, j'ai juste changé le bouton et son contenu. Un truc de feignasse quoi.

Re,

@Optimix, Ah oui, même pas vu le bouton Print PDF , bien joué !

^^

@3GB, je vais faire l'assemblage avec ton code merci 3Gb ^^

Merci beaucoup

Bon weekend à tous

Cordialement

@3GB, il faut ajouter quelle référence ?
cordialement
message1 ligne

re,

@Didier

en essayant de rajouter les 2 variables (coucou 3Gb corrige-moi si c'est faux -;) )

Dim fichier, dossier en dessous de dim ws as worksheet, chemin$

ce qui donne :

Dim ws As Worksheet, chemin$
Dim fichier
Dim dossier
' la suite etc...

crdlt,

André

Désolé, j'étais parti sur une variable puis je l'ai modifiée (entre temps) sans faire tous les changements :

Sub Exporter()

dim ws as worksheet, chemin$

set ws = sheets(1)
dossier = thisworkbook.path & "\"
fichier = ws.range("A1").value & format(now, "YYMMDD HHMMSS") & ".pdf"
chemin = dossier & fichier

if dir(chemin) <> "" then
    if msgbox("Le fichier existe déjà, Voulez-vous le remplacer ?", vbyesno + vbexclamation, "Demande de confirmation") <> vbyes then exit sub
end if

call EditionPDF(ws, chemin)

end sub

Sub EditionPDF(Feuille as worksheet, chemin$)
application.screenupdating = false
Feuille.visible = true
Feuille.exportasfixedformat type:=xltypepdf, filename:=chemin, ignoreprintareas:=false, openafterpublish:=true
Feuille.visible = false
application.screenupdating = true
end sub

Ca devrait être mieux.

Cette seconde macro, qui dépend de 2 paramètres (la feuille à exporter et le chemin de destination) ne peut être exécutée de façon autonome. Elle est exécutée par la première macro.

@André : Non, en principe, pas besoin de les déclarer si Didier n'est pas en Option Explicit. Par contre, les variables qui serviront d'arguments à la seconde macro doivent bien être déclarées et correctement typées.

Cdlt,

Bonsoir,

Merci beaucoup pour le code, @3GB il n'y a pas moyen d'ajouter une ligne pour demande à le renommer et pour l'ouvrir en même temps?

cordialement

Bonsoir,

Je viens d'éditer le code pour l'ouverture après publication. Je vais d'ailleurs poser une petite alternative qui laisse le choix (car je suis pas un grand fan de l'ouverture du pdf).

Pour renommer ce serait possible mais je ne vois pas bien l'intérêt vu que le fichier est nommé dynamiquement d'après le code. Ce code était un exemple, faute d'infos, mais si vous avez une idée précise sur le nom, le code est adaptable et le nom sera ainsi correctement choisi, automatiquement.

Edit : Voici une possibilité pour laisser le choix à l'utilisateur d'ouvrir ou non le pdf :

Sub Exporter()

dim ws as worksheet, chemin$, ouvrir as boolean

set ws = sheets(1)
dossier = thisworkbook.path & "\"
fichier = ws.range("A1").value & format(now, "YYMMDD HHMMSS") & ".pdf"
chemin = dossier & fichier

if dir(chemin) <> "" then
    if msgbox("Le fichier existe déjà, Voulez-vous le remplacer ?", vbyesno + vbexclamation, "Demande de confirmation") <> vbyes then exit sub
end if
ouvrir = msgbox("Voulez-vous ouvrir le pdf après publication ?", vbyesno) = vbyes
call EditionPDF(ws, chemin, ouvrir)

end sub

Sub EditionPDF(Feuille as worksheet, chemin$, optional ouvrirpdf as boolean)
application.screenupdating = false
Feuille.visible = true
Feuille.exportasfixedformat type:=xltypepdf, filename:=chemin, ignoreprintareas:=false, openafterpublish:=ouvrirpdf
Feuille.visible = false
application.screenupdating = true
end sub

Cdlt,

Re,

@ 3GB, il me propose d'ouvrir le fichier je dis ok mais rien ne se passe

Cordialement

Quel c*n parfois (moi bien sûr ) ! J'ai édité le code, il manquait l'option Oui ou Non sur la msgbox.

Cdlt,

ok ça marche merci quand même, je chercherai comment ajouter l'option oui et non.

cordialement

Non, tu ne m'as pas compris, j'ai modifié le code pour corriger mon oubli ! Si tu copies le dernier code posté, ça devrait marcher...

Re,

ok merci beaucoup, je ne l'ai pas vu

cordialement

Rechercher des sujets similaires à "pdf"