Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Impression Plusieurs fichiers

2 réponses
Avatar
Jean-Miche
Bonjour,

Je chercher à créer une macro permettant d'imprimer uniquement les pages
impaires de tous les fichiers d'un répertoire contenant 300 fichiers.
Je précise que les zones d'impression sont correctement définies et que le
but de la macro est de faire quelques clics seulement pour lancer
l'impression (choix du répertoire)

Avez vous une idée ?

2 réponses

Avatar
michdenis
Bonjour Jean-Miche,


essaie ceci :

Renseigne la variable Chemin du répertoire où sont tes fichiers

'-------------------------------
Sub Imprimer()

Dim Chemin As String, Fichier As String

Chemin = "c:Atravail" 'à définir

Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
SubImprimer Chemin & Fichier
Fichier = Dir()
Loop

End Sub

'-------------------------------
Sub SubImprimer(NomComplet As String)

Dim Wk As Workbook, NbPages As Integer
Dim A As Integer, sh As Worksheet

Set Wk = Workbooks.Open(NomComplet)
For Each sh In Worksheets
With sh
.Activate
NbPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
For A = 1 To NbPages Step 2
sh.PrintOut From:=A, To:=A, Preview:=True
Next
NbPages = 0
End With
Next
Wk.Close False
End Sub
'-------------------------------


Salutations!


"Jean-Miche" a écrit dans le message de news:

Bonjour,

Je chercher à créer une macro permettant d'imprimer uniquement les pages
impaires de tous les fichiers d'un répertoire contenant 300 fichiers.
Je précise que les zones d'impression sont correctement définies et que le
but de la macro est de faire quelques clics seulement pour lancer
l'impression (choix du répertoire)

Avez vous une idée ?
Avatar
michdenis
Bonjour Jean-Miche,

Si certains de tes fichiers ont des procédures qui s'exécutent à l'ouverture du fichier, tu devrais plutôt utiliser cette Sub. Cela
évitera l'exécution de ces dernières.


'---------------------------------
Sub Imprimer()

Dim Xl As New Excel.Application
Dim Chemin As String, Fichier As String
Dim Wk As Workbook, NbPages As Integer
Dim A As Integer, sh As Worksheet

Chemin = "c:Atravail"
Fichier = Dir(Chemin & "*.xls")

Application.ScreenUpdating = False

Do While Fichier <> ""
Set Wk = Xl.Workbooks.Open(Chemin & Fichier)
Xl.Visible = True 'optionnel ...mais en cas
'de problème, ça aide.
For Each sh In Wk.Worksheets
With sh
.Activate
NbPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
For A = 1 To NbPages Step 2
sh.PrintOut From:=A, To:=A, Preview:úlse
Next
NbPages = 0
End With
Next
Wk.Close False
Fichier = Dir()
Loop
Xl.Quit
Set Xl = Nothing: Set Wk = Nothing

End Sub
'---------------------------------



Salutations!



"Jean-Miche" a écrit dans le message de news:

Bonjour,

Je chercher à créer une macro permettant d'imprimer uniquement les pages
impaires de tous les fichiers d'un répertoire contenant 300 fichiers.
Je précise que les zones d'impression sont correctement définies et que le
but de la macro est de faire quelques clics seulement pour lancer
l'impression (choix du répertoire)

Avez vous une idée ?