Macro Excel: Imprimer tous onglets sauf 1
Résolu/Fermé
BertyBoy
Messages postés
8
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
26 août 2008
-
21 août 2008 à 18:39
BertyBoy Messages postés 8 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 26 août 2008 - 22 août 2008 à 12:13
BertyBoy Messages postés 8 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 26 août 2008 - 22 août 2008 à 12:13
A voir également:
- Macro Excel: Imprimer tous onglets sauf 1
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
6 réponses
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
21 août 2008 à 18:43
21 août 2008 à 18:43
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
BertyBoy
Messages postés
8
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
26 août 2008
7
21 août 2008 à 19:05
21 août 2008 à 19:05
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?
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
21 août 2008 à 19:43
21 août 2008 à 19:43
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
BertyBoy
Messages postés
8
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
26 août 2008
7
22 août 2008 à 09:26
22 août 2008 à 09:26
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
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
22 août 2008 à 10:31
22 août 2008 à 10:31
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
BertyBoy
Messages postés
8
Date d'inscription
jeudi 21 août 2008
Statut
Membre
Dernière intervention
26 août 2008
7
22 août 2008 à 12:13
22 août 2008 à 12:13
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 !!!!