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

Signaler
-
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
-
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

5 réponses

Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
De rien, tu peux cliquer sur réponse acceptée de façon à ce que le sujet apparaisse résolu.


Whismeril
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
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
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
Messages postés
14476
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 juillet 2020
420
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
Merci ,Whismeril

J'ai compris et ça fonctionne .

Bonne soirée