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)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ?
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" <Jean-Miche@discussions.microsoft.com> a écrit dans le message de news:
909F4640-3D0D-4A1A-8736-7539DE47A09F@microsoft.com...
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)
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 ?
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
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 ?
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
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" <Jean-Miche@discussions.microsoft.com> a écrit dans le message de news:
909F4640-3D0D-4A1A-8736-7539DE47A09F@microsoft.com...
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)
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
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)