ExportAsFixedFormat
Le
MichD

Bonjour,
On m'a transmis un fichier et la méthode "ExportAsFixedFormat"
semble être limitée à 1 seule page de la feuille de calcul. Peut-elle
imprimer plus de pages si la feuille en contient davantage?
Si oui, comment procédez-vous?
P.S. Je sais, on peut utiliser la commande "imprimer" du menu fichier
mais ce n'est pas là la question.
L'aide sur MSDN n'est pas explicite sur le sujet.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nom, _
Quality:=xlQualityStandard, IncludeDocProperties:úlse, _
IgnorePrintAreas:úlse, from:=1,
To:¬tiveWindow.SelectedSheets.Count, OpenAfterPublish:=True
Merci.
MichD
On m'a transmis un fichier et la méthode "ExportAsFixedFormat"
semble être limitée à 1 seule page de la feuille de calcul. Peut-elle
imprimer plus de pages si la feuille en contient davantage?
Si oui, comment procédez-vous?
P.S. Je sais, on peut utiliser la commande "imprimer" du menu fichier
mais ce n'est pas là la question.
L'aide sur MSDN n'est pas explicite sur le sujet.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nom, _
Quality:=xlQualityStandard, IncludeDocProperties:úlse, _
IgnorePrintAreas:úlse, from:=1,
To:¬tiveWindow.SelectedSheets.Count, OpenAfterPublish:=True
Merci.
MichD
Le paramètre : To:=3 , ou le nombre de pages désirés
Ce paramètre est facultatif, en l'omettant, il imprime jusqu'à la
dernière page.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:UsersmichdDocumentstoto" & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True,
IgnorePrintAreas:úlse, _
From:=1,to:=3, OpenAfterPublish:=True
Merci.
ça serait plutot,
ActiveSheet.PageSetup.Pages.Count
au lieu de
ActiveWindow.SelectedSheets.Count,
isabelle
Le 2016-06-29 à 11:36, MichD a écrit :
Ceci à l'air de le faire:
Sheets.Select 'une fois n'est pas coutume
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"G:Classeur4.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:úlse, OpenAfterPublish:úlse
'LSteph
Le mercredi 29 juin 2016 17:36:23 UTC+2, MichD a écrit :
Je répète la petite explication émise plutôt :
OK, le code devrait plutôt être comme ceci:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:UsersmichdDocumentstoto" & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:úlse, _
From:=1,to:=3, OpenAfterPublish:=True
Le paramètre suivant To:=3 à la ligne précédente, permet de limiter le
nombre de pages à imprimer dans le fichier PDF au nombre inscrit, ou si
on omet ce paramètre (il est facultatif) la ligne de code imprime tout
le document dans le fichier PDF jusqu'à la toute dernière page.
Merci pour vos commentaires!
MichD
IgnorePrintAreas:=True ?
Cordialement.
Daniel
Bonjour,
OUI, car seule une partie de la feuille doit être imprimée.
Cette section est définie par la propriété "PrintArea"de "PageSetup"
dans la procédure.
MichD
J'enregistre bien le nombre de feuilles sélectionnées
(ActiveWindow.SelectedSheets.Count).
Daniel
C'est justement où le bât blesse. En supposant que l'usager a 2 feuilles
de calcul dans son classeur et que chaque feuille contient plusieurs
pages, lorsque ce dernier utilise la propriété "To" comme ceci
to:¬tiveWindow.SelectedSheets.Count de la méthode
"ExportAsFixedFormat",le nombre de pages imprimé dans le fichier "PDF"
est de 2 et non le nombre total de pages que devrait contenir le fichier
"PDF". En ne définissant pas ce paramètre, toutes les pages des 2
feuilles sont incluses dans le fichier "PDF", ce que voulait l'usager!
MichD
si PDFCreator est installé ou autre, une solution serait d'imprimer les onglets
Sub Impression_PDFCreator()
Dim I As Integer
Dim MonImprimante As String
Dim Nom As String
MonImprimante = ActivePrinter 'récupérer imprimante active
On Error Resume Next
For I = 0 To 9
Nom = "PDFCreator sur ne0" & I & ":"
Application.ActivePrinter = Nom
If UCase(ActivePrinter) = UCase(Nom) Then Exit For
Next I
On Error GoTo 0
If UCase(ActivePrinter) = UCase(MonImprimante) Then
MsgBox "Imprimante non trouvée" & vbCr & Nom, Title:="Impression annulée"
Else
Sheets.PrintOut
ActivePrinter = MonImprimante 'remettre imprimante active
End If
End Sub
isabelle
Le 2016-07-03 à 14:56, MichD a écrit :
L'un de vous a-t-il testé le code que j'avais proposé.
Il me semble que cela mets toutes les pages dans le pdf quoiqu'il arrive...
Cordialement.
--
LSteph
Le lundi 4 juillet 2016 03:25:52 UTC+2, isabelle a écrit :