corser
-
19 sept. 2012 à 19:22
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024
-
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
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 19 sept. 2012 à 20:01
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
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 ?
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 19 sept. 2012 à 20:40
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
Vous n’avez pas trouvé la réponse que vous recherchez ?