Imprimer en Pdf un onglet d'un classeur

JBOBO

XLDnaute Accro
Imprimer en Pdf un onglet puis enregistrer dans repertoire d'origine.

Bonjour à tous,

Je cherche à pouvoir creer un fichier pdf avec nom_onglet + date du jour et que ce fichier se crée dans le repertoire du fichier xls d'origine.
Or comme le repertoire d'origine varie constamment, j'ai placé la macro ci-dessous dans le fichier de macro perso.xls afin de pouvoir lancer cette macro à partir d'un bouton situé dans la barre d'outils. Du coup le fichier s'enregistre dans C:\program files\microsoft office\office11\xlsart.

C'est la destination que je veux changer, afin qu'elle soit celle du fichier d'origine.

En esperant avoir été clair, je vous joint la macro.

Code:
Sub testo()
    'ws In Worksheets
    'Dim ws As Variant
    'ws.Select
    mystr = Format(Date, "dd-mm-yyyy")
    Sheets(Array(ActiveSheet.Name)).Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:= _
    ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    Application.ActivePrinter = "Sowedoo PDF 4 sur Ne00:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "Sowedoo PDF 4 sur Ne00:"
    ActiveWindow.Close
    FileCopy "D:\Data\" & ActiveSheet.Name & " " & mystr & ".pdf", ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".pdf"
    Kill (ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".xls") ', FileFormat:= _"
    Kill ("D:\Data\" & ActiveSheet.Name & " " & mystr & ".pdf")
    Application.DisplayAlerts = True
End Sub

Merci d'avance pour votre aide.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Imprimer en Pdf un onglet d'un classeur

Bonjour JBOBO
Votre code étant placé dans le "classeur de macros personnelles", ThisWorkbook fait référence au susdit classeur et non au classeur que vous imprimez. Par conséquent
ThisWorkbook.Path & "\" & ActiveSheet.Name & " " & mystr & ".pdf"
doit être modifié en remplaçant
ThisWorkbook.Path
par le chemin de destination qui vous convient.
C'est ce qu'il me semble...​
Bonne soirée,
ROGER2327
 

JBOBO

XLDnaute Accro
Re : Imprimer en Pdf un onglet d'un classeur

Merci pour ta réponse Roger2327.

Cependant mon problème est bien là, c'est que les fichiers à imprimer en pdf peuvent provenir d'un tas de repertoire différent et que je souhaiterais pouvoir ouvrir un fichier excel depuis n'importe quel repertoire pour ensuite lancer l'impression avec cette macro et que le fichier pdf ainsi crée se place dans le meme repertoire que le fichier qui à servit à sa creation. Je pourrais ainsi creer un pdf depuis n'importe quel fichier sans avoir à le nommer et à le placer manuellement dans tel ou tel repertoire.

Merci de votre aide au cas ou une soluce existerait.
 

ROGER2327

XLDnaute Barbatruc
Re : Imprimer en Pdf un onglet d'un classeur

Re...
Essayez de passer le chemin en question en paramètre. Dans votre code d'appel de testo vous avez vraisemblablement une instruction Call testo. En écrivant Call testo(ActiveWorkbook.Path) (je suppose que le classeur actif est le classeur à imprimer) et en modifiant votre code ainsi
Code:
Sub testo([COLOR="Red"]chemin As String[/COLOR])
    
...

    FileCopy "D:\Data\" & ActiveSheet.Name & " " & mystr & ".pdf", [COLOR="Red"]chemin[/COLOR] & "\" & ActiveSheet.Name & " " & mystr & ".pdf"

...

End Sub
je pense que vous devriez arriver à vos fins.
En attendant que les vrais spécialistes de ces questions vous donnent un coup de main...​
ROGER2327
 

JBOBO

XLDnaute Accro
Re : Imprimer en Pdf un onglet d'un classeur

re
bonjour,

Merci de prendre le temps de m'aider, désolé je ne peux pas regarder cela ce soir mais j'essaierai meme si je pense que je n'ai pas tout compris. Donc si quelqu'un à une autre astuce je suis preneur.
Merci encore de l'aide apportée.
Bonne soirée.
 

JBOBO

XLDnaute Accro
Re : Imprimer en Pdf un onglet d'un classeur

Bonjour à tous,

Je n'arrive toujours pas à modifier mon repertoire de destination, quelqu'un aurait il une idée ??

Où bien faut il repenser la macro, la placer ailleurs, toutes les idées seront les bienvenue.

Merci d'avance
 

francedemo

XLDnaute Occasionnel
Re : Imprimer en Pdf un onglet d'un classeur

bonjour à tous

en remplaçant :

Code:
ThisWorkbook.Path & "\" & ActiveSheet.Name &

par

Code:
ActiveWorkbook.Path & "\" & ActiveSheet.Name &

en supposant que le fichier ouvert est celui à imprimer

à +
 

JBOBO

XLDnaute Accro
Re : Imprimer en Pdf un onglet d'un classeur

Merci bcq

ça marche j'ai encore qq beug au moment du Kill du fichier xls, il ne retrouve pas tjs le fichier créer, mais je regarde cela de plus près et je revienss vers vous si je ne trouve pas de soluce convenable.

Merci encore de votre aide à tous, toujours aussi précieuse pour des gens comme moi.
 

JBOBO

XLDnaute Accro
Re : Imprimer en Pdf un onglet d'un classeur

Re bonjour à vous tous,

Encore merci pour votre aide, ça marche presque nickel.

Je reviens vers vous pour voir comment il serait possible que cette macro me permettent d'enregistrer en 1 fichier pdf tous les onglets selectionner. Car en effet à la base la macro etait sensée m'enregistrer l'onglet actif comme un nouveau fichier xls, pour ensuite le transformer en pdf et le mettre dans le meme repertoire que le fichier excel de départ. Tout ceci dans le but de ne pas avoir a renseigner manuellement le nom du fichier final en pdf ni son repertoire de destination.
Je pense que c'est probablement au niveau de cette ligne que le problème se situe
Code:
Sheets(Array(ActiveSheet.Name)).Copy
malheureusement je ne connais pas la syntaxe pour modifier cette ligne de sorte que le fichier excel creer puis le pdf final prennent en compte tous les onglets selectionner.


En esperant avoir été assez clair.

Toutefois ne voulant pas trop abuser, ne passer pas trop de temps au cas ou il faudrait repenser la macro en totalité, je m'arrangerai de ce qui marche déjà.

Faites le moi juste savoir.

Merci.
 

Discussions similaires

Réponses
7
Affichages
1 K

Statistiques des forums

Discussions
312 330
Messages
2 087 347
Membres
103 525
dernier inscrit
gbaipc