Impression feuille en pdf sous excel 2010 [Résolu]

- - Dernière réponse : Whismeril
Messages postés
13749
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 septembre 2019
- 20 sept. 2012 à 06:39
Bonsoir,

Tout d'abord , pour ma première venue j'espère avoir posté ce message dans le bon thème forum ?

Je sollicite votre aide car j'ai copier un code qui permet d'imprimer directement une feuille excel(2010) en pdf , cela fonctionne lorsque j'ai qu'une feuille mais si j'ai 2 feuilles il m'imprime les 2?
Voici le code pourriez vous me conseiller sur le sujet .

Meric d'avance.

Sub Macro1()
With ActiveSheet 'agit sur la feuille active, à adapter
On Error Resume Next
.Name = .Range("F3") 'le nom de la feuille prend le nom inscrit cellule A1
If Err.Number <> 0 Then 'Test d'erreur, par exemple onglet existant déjà, ou caractère invalide
MsgBox ("Nom invalide") ' messsage d'information en cas d'erreur
Exit Sub 'sortie de la macro en cas d'erreur
End If
End With
Dim i As Long
Application.ScreenUpdating = False
On Error Resume Next
'MkDir "c:\mesdocuments"
For i = 1 To Sheets.Count
Sheets(i).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\rl\Documents\classeur excel" & Sheets(i).Name & ".pdf"
Next i
Sheets(1).Select
Application.ScreenUpdating = True
MsgBox ("Les " & Sheets.Count & " documents PDF viennent d'être créés et son disponnibles dans le répertoire C:\mesdocuments ")
End Sub
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
13749
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 septembre 2019
303
3
Merci
De rien, tu peux cliquer sur réponse acceptée de façon à ce que le sujet apparaisse résolu.


Whismeril

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Whismeril
Messages postés
13749
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 septembre 2019
303
0
Merci
Bonsoir,

les macros Excel sont écrites en VBA (visual basic application), c'est à peu près du Visual Basic, tu aurais donc pu poster dans cette catégorie.

Je remets ton code avec les balises de coloration syntaxique (3ième icône en partant de la droite : ), regarde les commentaires en vert
For i = 1 To Sheets.Count 'c'est ici que ça ce passe, cette ligne initie une boucle qui va de 1 au nombre de feuilles
  Sheets(i).Select 'on selectionne la feuille i
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\rl\Documents\classeur excel" & Sheets(i).Name & ".pdf" 'et on l'imprime
Next i 

End Sub 



Whismeril
Commenter la réponse de Whismeril
0
Merci
Bonsoir ,

Tout d'abord merci pour ton attention . Si j'ai bien compris quand tu dis 'on selectionne la feuille i il s'agit de la feuil1 ? donc en remplacant "i" par le nom de ma feuille celà devrait fonctionner ?

Corse
Commenter la réponse de corser
Messages postés
13749
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 septembre 2019
303
0
Merci
si j'écris
For i = 1 To 3
....
Next i 


La boucle va compter de 1 à 3 inclus et mettre la valeur du comptage en cours dans i, et exécuter le code matérialisé par les ...

Donc si on admets que ton classeur à 3 pages,

au premier "tour" de boucle i vaut 1
on selectionne la feuille 1 et on l'imprime.
au deuxième "tour" de boucle i vaut 2,
on selectonne la feuille 2 et on l'imprime,

et devine ce qui se passe au troisième tour


Whismeril
Commenter la réponse de Whismeril
0
Merci
Merci ,Whismeril

J'ai compris et ça fonctionne .

Bonne soirée
Commenter la réponse de corser