zone d'impression

Le
gilles
bonjour,
sur un fichier avec 50 onglets, en xp et en xl2003,
tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
d'impression fait 2, 4 pages
comment faire par macro pour imposer la zone d'impression à toutes les pages
du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
ci dessous code essayé sans succès:

Sub repriseMarges()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 6 To ActiveWorkbook.Sheets.Count
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
ActiveWindow.View = xlNormalView
ActiveWindow.SmallScroll Down:=6
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SmallScroll Down:=-15
ActiveWindow.View = xlNormalView
Next i
End Sub

MERCI de votre aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
lSteph
Le #16538021
Bonjour,
que tu passes par un For.. to ..next ou For each.. in ..VBA fera
toujours feuille par feuille
ne pas être en groupe de travail pour effectuer la manoeuvre.

Sub mpg()
Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 5 Then _
sh.PageSetup.PrintArea = "$A$1:$A$50"
Next

End Sub

'lSteph

On 13 août, 13:40, gilles
bonjour,
sur un fichier avec 50 onglets, en xp et en xl2003,
tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la z ône
d'impression fait 2, 4 pages
comment faire par macro pour imposer la zone d'impression à toutes les pages
du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ? ?
ci dessous code essayé sans succès:

Sub repriseMarges()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 6 To ActiveWorkbook.Sheets.Count
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
ActiveWindow.View = xlNormalView
ActiveWindow.SmallScroll Down:=6
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SmallScroll Down:=-15
ActiveWindow.View = xlNormalView
Next i
End Sub

MERCI de votre aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'h ui,
mais à chaque jour suffit sa peine...


michdenis
Le #16538221
Comme la macro utilise l'index des feuilles pour
déterminer celle qui seront imprimés, tu aurais
avantage à protéger TON CLASSEUR pour
empêcher qu'un usager modifie l'ordre des
onglets de la feuille.

PrintArea = "$A$1:$A$50"
la même plage pour toutes les feuilles
Tu ne peux déterminer qu'une plage à imprimer à la fois.

Au besoin avant de lancer l'impression, il est toujours possible
de masquer des lignes ou colonnes que l'on ne désire pas
imprimer.


'-----------------------------------------
Sub repriseMarges()

With ThisWorkbook
For i = 6 To Worksheets.Count
With Worksheets(i)
.PageSetup.PrintArea = "$A$1:$A$50"
'Tu remplace par PrintOut pour imprimer
.PrintPreview
.PageSetup.PrintArea = ""
End With
Next
End With
End Sub
'-----------------------------------------



"gilles"
bonjour,
sur un fichier avec 50 onglets, en xp et en xl2003,
tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
d'impression fait 2, 4 pages
comment faire par macro pour imposer la zone d'impression à toutes les pages
du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
ci dessous code essayé sans succès:

Sub repriseMarges()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 6 To ActiveWorkbook.Sheets.Count
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
ActiveWindow.View = xlNormalView
ActiveWindow.SmallScroll Down:=6
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SmallScroll Down:=-15
ActiveWindow.View = xlNormalView
Next i
End Sub

MERCI de votre aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
gilles
Le #16538711
Re-bonjour
et merci de votre aide
j'ai utilisé le code de Michel qui ne donne rien: j'ai toujours etr 2 et 9
pages à l'aperçu, par onglet
de plus, le code ne ferme pas l'aperçu, à chaque onglet
Le code de Steph semble mieux, mais bizarrement j'ai encore kek onglets qui
persistent à 2 pages
je peaufine ça
mais de toutes façons, merci
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"michdenis" a écrit :

Comme la macro utilise l'index des feuilles pour
déterminer celle qui seront imprimés, tu aurais
avantage à protéger TON CLASSEUR pour
empêcher qu'un usager modifie l'ordre des
onglets de la feuille.

PrintArea = "$A$1:$A$50"
la même plage pour toutes les feuilles
Tu ne peux déterminer qu'une plage à imprimer à la fois.

Au besoin avant de lancer l'impression, il est toujours possible
de masquer des lignes ou colonnes que l'on ne désire pas
imprimer.


'-----------------------------------------
Sub repriseMarges()

With ThisWorkbook
For i = 6 To Worksheets.Count
With Worksheets(i)
.PageSetup.PrintArea = "$A$1:$A$50"
'Tu remplace par PrintOut pour imprimer
.PrintPreview
.PageSetup.PrintArea = ""
End With
Next
End With
End Sub
'-----------------------------------------



"gilles"
bonjour,
sur un fichier avec 50 onglets, en xp et en xl2003,
tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
d'impression fait 2, 4 pages
comment faire par macro pour imposer la zone d'impression à toutes les pages
du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
ci dessous code essayé sans succès:

Sub repriseMarges()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 6 To ActiveWorkbook.Sheets.Count
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
ActiveWindow.View = xlNormalView
ActiveWindow.SmallScroll Down:=6
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SmallScroll Down:=-15
ActiveWindow.View = xlNormalView
Next i
End Sub

MERCI de votre aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...




lSteph
Le #16538991
Re,

..attention, si tu dis que

....le code de Michel ... j'ai toujours etr 2 et 9
pages à l'aperçu, par onglet


..
Le code de Steph ... j'ai encore kek onglets qui
persistent à 2 pages



tu as demandé selon ma compréhension de définir la même zone
d'impression pour tous les onglets de feuille de calcul à partir du
6ème.
Cela ne remets en cause le nombre de pages nécessaires pour
l'affichage des zones correspondantes de chaque onglet

--
lSteph
michdenis
Le #16538981
ceci devrait aller :

Évidemment, la fenêtre prévisualisation ne se
ferme pas toute seule. c'est pour te permettre
de voir si tout se déroule comme prévu.

Lorsque tu es satisfait, tu remplaces comme dis
dans la procédure . PrintPreview par Printout et
la fenêtre de prévisualisation ne s'affichera plus.

'---------------------------------
Sub repriseMarges()

With ThisWorkbook
For i = 1 To Worksheets.Count
With Feuil1 ' Worksheets(i)
.PageSetup.PrintArea = "$A$1:$A$50"
.PageSetup.FitToPagesTall = 1
.PageSetup.FitToPagesWide = 1
'Tu remplace par PrintOut pour imprimer
.PrintPreview
.PageSetup.PrintArea = ""
End With
Next
End With
End Sub
'---------------------------------




"gilles"
Re-bonjour
et merci de votre aide
j'ai utilisé le code de Michel qui ne donne rien: j'ai toujours etr 2 et 9
pages à l'aperçu, par onglet
de plus, le code ne ferme pas l'aperçu, à chaque onglet
Le code de Steph semble mieux, mais bizarrement j'ai encore kek onglets qui
persistent à 2 pages
je peaufine ça
mais de toutes façons, merci
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"michdenis" a écrit :

Comme la macro utilise l'index des feuilles pour
déterminer celle qui seront imprimés, tu aurais
avantage à protéger TON CLASSEUR pour
empêcher qu'un usager modifie l'ordre des
onglets de la feuille.

PrintArea = "$A$1:$A$50"
la même plage pour toutes les feuilles
Tu ne peux déterminer qu'une plage à imprimer à la fois.

Au besoin avant de lancer l'impression, il est toujours possible
de masquer des lignes ou colonnes que l'on ne désire pas
imprimer.


'-----------------------------------------
Sub repriseMarges()

With ThisWorkbook
For i = 6 To Worksheets.Count
With Worksheets(i)
.PageSetup.PrintArea = "$A$1:$A$50"
'Tu remplace par PrintOut pour imprimer
.PrintPreview
.PageSetup.PrintArea = ""
End With
Next
End With
End Sub
'-----------------------------------------



"gilles" news:

bonjour,
sur un fichier avec 50 onglets, en xp et en xl2003,
tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
d'impression fait 2, 4 pages
comment faire par macro pour imposer la zone d'impression à toutes les
pages
du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
ci dessous code essayé sans succès:

Sub repriseMarges()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = 6 To ActiveWorkbook.Sheets.Count
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
ActiveWindow.View = xlNormalView
ActiveWindow.SmallScroll Down:=6
ActiveWindow.SelectedSheets.PrintPreview
ActiveWindow.SmallScroll Down:=-15
ActiveWindow.View = xlNormalView
Next i
End Sub

MERCI de votre aide
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...




lSteph
Le #16538971
Faut que tu précises dans ton pagesetup selon ton besoin largeur
longueur
.FitToPagesWide = 1
.FitToPagesTall = 2

'lSteph

On 13 août, 15:50, gilles
Re-bonjour
et merci de votre aide
j'ai utilisé le code de Michel qui ne donne rien: j'ai toujours etr 2 e t 9
pages à l'aperçu, par onglet
de plus, le code ne ferme pas l'aperçu, à chaque onglet
Le code de Steph semble mieux, mais bizarrement j'ai encore kek onglets q ui
persistent à 2 pages
je peaufine ça
mais de toutes façons, merci
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'h ui,
mais à chaque jour suffit sa peine...

"michdenis" a écrit :

> Comme la macro utilise l'index des feuilles pour
> déterminer celle qui seront imprimés, tu aurais
> avantage à protéger TON CLASSEUR pour
> empêcher qu'un usager modifie l'ordre des
> onglets de la feuille.

> PrintArea = "$A$1:$A$50"
> la même plage pour toutes les feuilles
> Tu ne peux déterminer qu'une plage à imprimer à la fois.

> Au besoin avant de lancer l'impression, il est toujours possible
> de masquer des lignes ou colonnes que l'on ne désire pas
> imprimer.

> '-----------------------------------------
> Sub repriseMarges()

> With ThisWorkbook
> For i = 6 To Worksheets.Count
> With Worksheets(i)
> .PageSetup.PrintArea = "$A$1:$A$50"
> 'Tu remplace par PrintOut pour imprimer
> .PrintPreview
> .PageSetup.PrintArea = ""
> End With
> Next
> End With
> End Sub
> '-----------------------------------------

> "gilles" >
> bonjour,
> sur un fichier avec 50 onglets, en xp et en xl2003,
> tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
> d'impression fait 2, 4 pages
> comment faire par macro pour imposer la zone d'impression à toutes le s pages
> du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
> ci dessous code essayé sans succès:

> Sub repriseMarges()
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
> For i = 6 To ActiveWorkbook.Sheets.Count
> ActiveWindow.View = xlPageBreakPreview
> ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
> ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
> ActiveWindow.View = xlNormalView
> ActiveWindow.SmallScroll Down:=6
> ActiveWindow.SelectedSheets.PrintPreview
> ActiveWindow.SmallScroll Down:=-15
> ActiveWindow.View = xlNormalView
> Next i
> End Sub

> MERCI de votre aide
> --
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd 'hui,
> mais à chaque jour suffit sa peine...



....
lSteph
Le #16538951
Sub mpg()
Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 5 Then _
with sh.PageSetup
.PrintArea = "$A$1:$A$50"
.FitToPagesWide = 1
.FitToPagesTall = 2
end with
Next

End Sub

'lSteph



On 13 août, 15:50, gilles
Re-bonjour
et merci de votre aide
j'ai utilisé le code de Michel qui ne donne rien: j'ai toujours etr 2 e t 9
pages à l'aperçu, par onglet
de plus, le code ne ferme pas l'aperçu, à chaque onglet
Le code de Steph semble mieux, mais bizarrement j'ai encore kek onglets q ui
persistent à 2 pages
je peaufine ça
mais de toutes façons, merci
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'h ui,
mais à chaque jour suffit sa peine...

"michdenis" a écrit :

> Comme la macro utilise l'index des feuilles pour
> déterminer celle qui seront imprimés, tu aurais
> avantage à protéger TON CLASSEUR pour
> empêcher qu'un usager modifie l'ordre des
> onglets de la feuille.

> PrintArea = "$A$1:$A$50"
> la même plage pour toutes les feuilles
> Tu ne peux déterminer qu'une plage à imprimer à la fois.

> Au besoin avant de lancer l'impression, il est toujours possible
> de masquer des lignes ou colonnes que l'on ne désire pas
> imprimer.

> '-----------------------------------------
> Sub repriseMarges()

> With ThisWorkbook
> For i = 6 To Worksheets.Count
> With Worksheets(i)
> .PageSetup.PrintArea = "$A$1:$A$50"
> 'Tu remplace par PrintOut pour imprimer
> .PrintPreview
> .PageSetup.PrintArea = ""
> End With
> Next
> End With
> End Sub
> '-----------------------------------------

> "gilles" >
> bonjour,
> sur un fichier avec 50 onglets, en xp et en xl2003,
> tous mes onglets ont 1 seule page à imprimer mais à l'aperçu, la zône
> d'impression fait 2, 4 pages
> comment faire par macro pour imposer la zone d'impression à toutes le s pages
> du classeur, à partir de l'onglet 6 , sans le faire onglet par onglet ??
> ci dessous code essayé sans succès:

> Sub repriseMarges()
> Application.ScreenUpdating = False
> Application.DisplayAlerts = False
> For i = 6 To ActiveWorkbook.Sheets.Count
> ActiveWindow.View = xlPageBreakPreview
> ActiveSheet.PageSetup.PrintArea = "$A$1:$A$29"
> ActiveSheet.PageSetup.PrintArea = "$A$1:$A$50"
> ActiveWindow.View = xlNormalView
> ActiveWindow.SmallScroll Down:=6
> ActiveWindow.SelectedSheets.PrintPreview
> ActiveWindow.SmallScroll Down:=-15
> ActiveWindow.View = xlNormalView
> Next i
> End Sub

> MERCI de votre aide
> --
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd 'hui,
> mais à chaque jour suffit sa peine...


dunkelzahn
Le #16538931
bonjour,

Je pense qu'en fait tu voudrais redimmensionner à l'impression la zone
imprimable de ta feuille sur une seule page.

Il faut regarder dans pagestup.zoom
Voici l'exemple qui peut s'appliquer à ton code (repris de l'aide) :

With Worksheets("Sheet1").PageSetup
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With



On 13 août, 16:08, lSteph
Re,

..attention, si  tu dis que

....le code de Michel ... j'ai toujours etr 2 et 9

> pages à l'aperçu, par onglet
..
> Le code de Steph ... j'ai encore kek onglets qui
> persistent à 2 pages

tu as demandé selon ma compréhension de définir la même zone
d'impression pour tous les onglets de feuille de calcul à partir du
6ème.
Cela ne remets en cause le nombre de pages nécessaires pour
l'affichage des zones correspondantes de chaque onglet

--
lSteph


lSteph
Le #16538921
bonjour,
je répondais à Gilles , ceci suffit:

Sub mpg()
Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 5 Then _
with sh.PageSetup
.PrintArea = "$A$1:$A$50"
.FitToPagesWide = 1
.FitToPagesTall = 1
end with
Next

End Sub

On 13 août, 16:19, dunkelzahn
bonjour,

Je pense qu'en fait tu voudrais redimmensionner à l'impression la zone
imprimable de ta feuille sur une seule page.

Il faut regarder dans pagestup.zoom
Voici l'exemple qui peut s'appliquer à ton code (repris de l'aide) :

With Worksheets("Sheet1").PageSetup
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With

On 13 août, 16:08, lSteph
> Re,

> ..attention, si tu dis que

> ....le code de Michel ... j'ai toujours etr 2 et 9

> > pages à l'aperçu, par onglet
> ..
> > Le code de Steph ... j'ai encore kek onglets qui
> > persistent à 2 pages

> tu as demandé selon ma compréhension de définir la même zone
> d'impression pour tous les onglets de feuille de calcul à partir du
> 6ème.
> Cela ne remets en cause le nombre de pages nécessaires pour
> l'affichage des zones correspondantes de chaque onglet

> --
> lSteph


dunkelzahn
Le #16539091
bonjour,

Au moment où je saisissais mon texte, ce message n'était pas encore
apparent. Mais le .zoom n'est il pas nécessaire à paramétrer ?

On 13 août, 16:22, lSteph
bonjour,
je répondais à Gilles , ceci suffit:

Sub mpg()
Dim sh  As Worksheet

For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 5 Then _
with sh.PageSetup
 .PrintArea = "$A$1:$A$50"
 .FitToPagesWide = 1
 .FitToPagesTall = 1
end with
Next

End Sub

On 13 août, 16:19, dunkelzahn


> bonjour,

> Je pense qu'en fait tu voudrais redimmensionner à l'impression la zon e
> imprimable de ta feuille sur une seule page.

> Il faut regarder dans pagestup.zoom
> Voici l'exemple qui peut s'appliquer à ton code (repris de l'aide) :

> With Worksheets("Sheet1").PageSetup
>     .Zoom = False
>     .FitToPagesTall = 1
>     .FitToPagesWide = 1
> End With

> On 13 août, 16:08, lSteph
> > Re,

> > ..attention, si  tu dis que

> > ....le code de Michel ... j'ai toujours etr 2 et 9

> > > pages à l'aperçu, par onglet
> > ..
> > > Le code de Steph ... j'ai encore kek onglets qui
> > > persistent à 2 pages

> > tu as demandé selon ma compréhension de définir la même zone
> > d'impression pour tous les onglets de feuille de calcul à partir du
> > 6ème.
> > Cela ne remets en cause le nombre de pages nécessaires pour
> > l'affichage des zones correspondantes de chaque onglet

> > --
> > lSteph- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme