Macro Excel: Imprimer tous onglets sauf 1
Résolu
BertyBoy
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
BertyBoy Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
BertyBoy Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Imprimer tous les onglets excel
- Liste déroulante excel - Guide
- Imprimer tableau excel sur une page - Guide
- Word et excel gratuit - Guide
- Comment imprimer en a5 - Guide
- Restaurer les onglets chrome - Guide
6 réponses
Bonjour
tu n'es pas obligé de rendre les feuilles à ne pas imprimer visibles
tu n'es pas obligé de selectionner une feuille pour l'imprimer
si la 1ere et la derniere n'est pas à imprimer
tu n'es pas obligé de rendre les feuilles à ne pas imprimer visibles
tu n'es pas obligé de selectionner une feuille pour l'imprimer
si la 1ere et la derniere n'est pas à imprimer
dim i as integer for i = 2 to sheets.count -1 sheets(i).PrintOut next i
Merci Wilfried,
Le problème est qu'en faisant de cette manière, la numérotation de mes pages n'est plus bonne. Il me fait une numérotation de page par onglet et non globale sur tous les onglets...Aurais-tu une autre idée?
Le problème est qu'en faisant de cette manière, la numérotation de mes pages n'est plus bonne. Il me fait une numérotation de page par onglet et non globale sur tous les onglets...Aurais-tu une autre idée?
re:
je ne sais meme pas si ca va fonctionner, essaye ceci simplement pour savoir si tes n° de page se suivent
tu fais seulement un preview afficher avant impression
tu selectionnes ta 1ere feuille à imprimer, tu appuies sur Shift, ensuite tu click sur la derniere feuille
ca ca marche
ensuite menu fichier, appercu avant impression
et dis moi si tes n° de page sont corrects.......
si c'est ok, je vais essayer quelque chose, mais pas ce soir, c'est trop long à mettre en place
je ne sais meme pas si ca va fonctionner, essaye ceci simplement pour savoir si tes n° de page se suivent
tu fais seulement un preview afficher avant impression
tu selectionnes ta 1ere feuille à imprimer, tu appuies sur Shift, ensuite tu click sur la derniere feuille
ca ca marche
ensuite menu fichier, appercu avant impression
et dis moi si tes n° de page sont corrects.......
si c'est ok, je vais essayer quelque chose, mais pas ce soir, c'est trop long à mettre en place
Salut Wilfried!
Ok avec shift ça marche bien. En fait des que tu selectionnes toutes les feuilles et que t'imprimes par la suite, ça marche, si tu imprimes les feuilles les unes après les autres, là ça ne marche plus... :(
Encore merci de ton aide
Ok avec shift ça marche bien. En fait des que tu selectionnes toutes les feuilles et que t'imprimes par la suite, ça marche, si tu imprimes les feuilles les unes après les autres, là ça ne marche plus... :(
Encore merci de ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
bon je viens de faire un essai et ca à l'air de fonctionner
si tu veux, Sheets(Array("Feuil1","Feuil2","Feuil3")).printout
fonctionne tres bien, mais (il y en a toujour un) ton nombre de feuilles à imprimer n'est pas defini, tu vas de la 2eme à la derniere -1
je n'ai pas trouvé comment affecter une table à la place de Array, plein d'essais, plein d'echec
alors j'ai fait autrement, j'ai fait une macro qui crée l'odre Sheets(Array( et qu'il l'inserre directement dans le code de la macro vide, ensuite elle lance cette macro
Alors tous les details sont improtants : Creer un Module Standard et le nommer gw_imp (pas de majuscule)
ensuite faire un copier coller du code ci-dessous
ensuite lier ton bouton à la macro lance_imp
bon je viens de faire un essai et ca à l'air de fonctionner
si tu veux, Sheets(Array("Feuil1","Feuil2","Feuil3")).printout
fonctionne tres bien, mais (il y en a toujour un) ton nombre de feuilles à imprimer n'est pas defini, tu vas de la 2eme à la derniere -1
je n'ai pas trouvé comment affecter une table à la place de Array, plein d'essais, plein d'echec
alors j'ai fait autrement, j'ai fait une macro qui crée l'odre Sheets(Array( et qu'il l'inserre directement dans le code de la macro vide, ensuite elle lance cette macro
Alors tous les details sont improtants : Creer un Module Standard et le nommer gw_imp (pas de majuscule)
ensuite faire un copier coller du code ci-dessous
Sub lance_imp() Dim ordre As String, ligne As Long ordre = "Sheets(Array(" For i = 2 To Sheets.Count - 2 If i > 1 Then ordre = ordre & "," ordre = ordre & Chr(34) & Sheets(i).Name & Chr(34) Next i ordre = ordre & ")).PrintOut" With ThisWorkbook.VBProject.VBComponents("gw_imp").CodeModule For ligne = 1 To .CountOfLines If .Lines(ligne, 1) = "Sub imprim()" Then .InsertLines ligne + 1, ordre: Exit For Next ligne Call imprim .DeleteLines ligne + 1, 1 End With End Sub Sub imprim() End Sub
ensuite lier ton bouton à la macro lance_imp
Un grand merci!
Ca fonctionne apres quelques modifications de ton code pour l'adapter à mes besoins...
Tout d'abord, il me fallait rendre la premiere et la derniere feuille visibles pour ne pas faire planter la macro, car je les cache pour pas qu'elles me polluent le nombre d'onglets...
Ensuite, il me fallait la page de garde et l'avant derniere feuille, donc j'ai mis de 1 à sheets.count-1, donc nickel! ;)
Derniere chose, j'ai modifié pour inserer une mise en page à 1 sur les largeurs... et tout fonctionne parfaitement!!!
Tu m'as débarrassé d'une bonne galère, je finissais par croire que mon besoin était impossible...
ci joint le dernier code pour ceux qui seraient dans la même galère que moi ;)
Sub lance_imp()
Sheets("Garde").Visible = True
Sheets("Paramètres").Visible = True
For S = 2 To Sheets.Count
Sheets(S).PageSetup.FitToPagesWide = 1
Next S
Dim ordre As String, ligne As Long
ordre = "Sheets(Array("
For i = 1 To Sheets.Count - 1
If i > 1 Then ordre = ordre & ","
ordre = ordre & Chr(34) & Sheets(i).Name & Chr(34)
Next i
ordre = ordre & ")).PrintOut"
With ThisWorkbook.VBProject.VBComponents("gw_imp").CodeModule
For ligne = 1 To .CountOfLines
If .Lines(ligne, 1) = "Sub imprim()" Then .InsertLines ligne + 1, ordre: Exit For
Next ligne
Call imprim
.DeleteLines ligne + 1, 1
End With
Sheets("Garde").Visible = False
Sheets("Paramètres").Visible = False
Application.ScreenUpdating = True
End Sub
Sub imprim()
End Sub
Et voila,
++
MERCI !!!!
Ca fonctionne apres quelques modifications de ton code pour l'adapter à mes besoins...
Tout d'abord, il me fallait rendre la premiere et la derniere feuille visibles pour ne pas faire planter la macro, car je les cache pour pas qu'elles me polluent le nombre d'onglets...
Ensuite, il me fallait la page de garde et l'avant derniere feuille, donc j'ai mis de 1 à sheets.count-1, donc nickel! ;)
Derniere chose, j'ai modifié pour inserer une mise en page à 1 sur les largeurs... et tout fonctionne parfaitement!!!
Tu m'as débarrassé d'une bonne galère, je finissais par croire que mon besoin était impossible...
ci joint le dernier code pour ceux qui seraient dans la même galère que moi ;)
Sub lance_imp()
Sheets("Garde").Visible = True
Sheets("Paramètres").Visible = True
For S = 2 To Sheets.Count
Sheets(S).PageSetup.FitToPagesWide = 1
Next S
Dim ordre As String, ligne As Long
ordre = "Sheets(Array("
For i = 1 To Sheets.Count - 1
If i > 1 Then ordre = ordre & ","
ordre = ordre & Chr(34) & Sheets(i).Name & Chr(34)
Next i
ordre = ordre & ")).PrintOut"
With ThisWorkbook.VBProject.VBComponents("gw_imp").CodeModule
For ligne = 1 To .CountOfLines
If .Lines(ligne, 1) = "Sub imprim()" Then .InsertLines ligne + 1, ordre: Exit For
Next ligne
Call imprim
.DeleteLines ligne + 1, 1
End With
Sheets("Garde").Visible = False
Sheets("Paramètres").Visible = False
Application.ScreenUpdating = True
End Sub
Sub imprim()
End Sub
Et voila,
++
MERCI !!!!