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

zone d'impression

30 réponses
Avatar
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...

10 réponses

1 2 3
Avatar
gilles
effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pages
j'avais deja remarqué ça mais je pensais que le code macro forcerait à ne
tenir compte QUE de la page 1
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"LSteph" a écrit :

...ou il y a des sauts de page qui trainent

gilles a écrit :
> ...suite
> et en final ça marche maisles onglets comportent toujours une zone
> d'impression de 2 pages ou plus
> à+
> Gilles



Avatar
LSteph
.. sauf si des sauts de page manuels sont insérés,
sinon c'est qu'effecivement ça n'y tient pas

Veux tu nous soumettre une page pour voir (si tu le souhaites)
pose la sur
http://www.cjoint.com

et reviens donner par ici le lien

gilles a écrit :
effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pages
j'avais deja remarqué ça mais je pensais que le code macro forcerait à ne
tenir compte QUE de la page 1


Avatar
LSteph
....et bien , il faut croire que le principe de mise en page en manuel
n'est pas tout à fait le même en vba puisque l'ajustement ne suffit pas
à enlever le zoom,
il faut préalablement MERCI à "Dunk...y" pour son conseil, virer le zoom
mais cela ne suffit pas, encore faut il écarter le saut de page.
Ceci semble le faire:

Sub mpg()
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 0 Then

With sh.PageSetup

.PrintArea = "$A$1:$a$50"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
On Error Resume Next
sh.HPageBreaks(1).DragOff xlDown, 1
On Error GoTo 0
End If
Next
End Sub

'lSteph

effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pages
j'avais deja remarqué ça mais je pensais que le code macro forcerait à ne
tenir compte QUE de la page 1


Avatar
gilles
Bonjour Steph
http://cjoint.com/?iojL2yDaeo
je n'ai laissé que les 2 premiers onglets pour alléger le fichier
de toutes manières...merci encore
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"LSteph" a écrit :

.....et bien , il faut croire que le principe de mise en page en manuel
n'est pas tout à fait le même en vba puisque l'ajustement ne suffit pas
à enlever le zoom,
il faut préalablement MERCI à "Dunk...y" pour son conseil, virer le zoom
mais cela ne suffit pas, encore faut il écarter le saut de page.
Ceci semble le faire:

Sub mpg()
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 0 Then

With sh.PageSetup

.PrintArea = "$A$1:$a$50"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
On Error Resume Next
sh.HPageBreaks(1).DragOff xlDown, 1
On Error GoTo 0
End If
Next
End Sub

'lSteph

> effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pages
> j'avais deja remarqué ça mais je pensais que le code macro forcerait à ne
> tenir compte QUE de la page 1



Avatar
gilles
NIckel
comme entre temps j'ai reçu ta modif, je l'ai essayée
tu as trouvé la faille
merci lSteph
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"LSteph" a écrit :

.....et bien , il faut croire que le principe de mise en page en manuel
n'est pas tout à fait le même en vba puisque l'ajustement ne suffit pas
à enlever le zoom,
il faut préalablement MERCI à "Dunk...y" pour son conseil, virer le zoom
mais cela ne suffit pas, encore faut il écarter le saut de page.
Ceci semble le faire:

Sub mpg()
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 0 Then

With sh.PageSetup

.PrintArea = "$A$1:$a$50"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
On Error Resume Next
sh.HPageBreaks(1).DragOff xlDown, 1
On Error GoTo 0
End If
Next
End Sub

'lSteph

> effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pages
> j'avais deja remarqué ça mais je pensais que le code macro forcerait à ne
> tenir compte QUE de la page 1



Avatar
dunkelzahn
Bonjour,

De rien, j'essaie d'aider comme je peux en retour de l'aide que j'ai
pu avoir et qui m'a permis de bien avancer mon projet.



On 14 août, 09:00, LSteph wrote:
....et bien , il faut croire que le principe de mise en page en manuel
n'est pas tout à fait le même en vba puisque l'ajustement ne suffit p as
à enlever le zoom,
il faut préalablement MERCI  à "Dunk...y" pour son conseil, virer l e zoom
mais cela ne suffit pas, encore faut il écarter le saut de page.
Ceci semble le faire:

Sub mpg()
  Dim sh  As Worksheet
  Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Worksheets
If sh.Index > 0 Then

With sh.PageSetup

   .PrintArea = "$A$1:$a$50"
    .Zoom = False
   .FitToPagesWide = 1
  .FitToPagesTall = 1
  End With
  On Error Resume Next
    sh.HPageBreaks(1).DragOff xlDown, 1
   On Error GoTo 0
End If
Next
End Sub

'lSteph



> effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 pag es
> j'avais deja remarqué ça mais je pensais que le code macro forcerai t à ne
> tenir compte QUE de la page 1- Masquer le texte des messages précéd ents -

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


Avatar
dunkelzahn
Bonjour Gilles,

J'ai regardé le code et fait quelques corrections.
Voici celui que j'ai modifié : http://cjoint.com/?iopFDHHsN7

J'ai réussi à faire imprimer que la première page avec la fonction
mpg2 (j'ai rajouté un sh.printout pour imprimer les feuilles)

Quelques petits conseils : utilise le compilateur (Menu Débogage >
Compiler VBAproject) pour détecter les erreurs de codes restantes.
Ceci peut générer des erreurs aléatoires. J'en ai corrigés certains .
Egalement, pense à utiliser les tabulations avec les if, for, while,
with, etc. Ceci clarifie la lecture du code et permet également de
trouver quand tu oublies un next ou un end if.

J'espère que cela t'aidera

Cordialement

On 14 août, 09:43, gilles wrote:
Bonjour Stephhttp://cjoint.com/?iojL2yDaeo
je n'ai laissé que les 2 premiers onglets pour alléger le fichier
de toutes manières...merci encore
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'h ui,
mais à chaque jour suffit sa peine...

"LSteph" a écrit :



> .....et bien , il faut croire que le principe de mise en page en manuel
> n'est pas tout à fait le même en vba puisque l'ajustement ne suffit pas
> à enlever le zoom,
> il faut préalablement MERCI  à "Dunk...y" pour son conseil, virer le zoom
> mais cela ne suffit pas, encore faut il écarter le saut de page.
> Ceci semble le faire:

> Sub mpg()
>   Dim sh  As Worksheet
>   Application.ScreenUpdating = False
> For Each sh In ActiveWorkbook.Worksheets
> If sh.Index > 0 Then

> With sh.PageSetup

>    .PrintArea = "$A$1:$a$50"
>     .Zoom = False
>    .FitToPagesWide = 1
>   .FitToPagesTall = 1
>   End With
>   On Error Resume Next
>     sh.HPageBreaks(1).DragOff xlDown, 1
>    On Error GoTo 0
> End If
> Next
> End Sub

> 'lSteph

> > effectivement quand j'affiche les sauts de pages, j'ai jusqu'à 10 p ages
> > j'avais deja remarqué ça mais je pensais que le code macro forcer ait à ne
> > tenir compte QUE de la page 1- Masquer le texte des messages préc édents -

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


Avatar
LSteph
gilles a écrit :
NIckel


..faudra juste remettre à >5 pour tes feuilles
j'avais mis >0 pour tester avec Feuil1
comme entre temps j'ai reçu ta modif, je l'ai essayée
tu as trouvé la faille


..heu la moitié l'autre c'est dunk... qui l'a suggèrée.
merci lSteph



@+
Avatar
ocott
Bonjour,

merci à tous de vos réponses à Gilles. J'ai repris la macro mpg en mettant 3
pages en hauteur et une en largeur, ça fonctionne nickel. Connaitriez-vous
par contre un moyen de forcer les sauts de page ? si je reprends l'exemple de
l'impression des cellules a1:a50, je voudrais que la page 1 soit de a1 à a10,
la page 2 de a11 à a30 et la page 3 de a31 à a50.

Merci d'avance pour votre aide.

Olivier
Avatar
DesseJ
On 23 sep, 10:52, ocott wrote:
Connaitriez-vous par contre un moyen de forcer les sauts de page ? si je reprends l'exemple de l'impression des cellules a1:a50, je voudrais que la page 1 soit de a1 à a10, la page 2 de a11 à a30 et la page 3 de a31 à a50.



Bonjour,
Il me semble avoir lu ici qu'avec le mode "ajuster sur x pages en
hauteur", Excel calcule automatiquement les sauts de pages. En
revanche, en mode zoom, il n'y a aucun problème pour gérer les sauts.
J'ai pu le constater sur un de mes petits développements.
A moins qu'un de nos experts ait une astuce magique ;o)))
Bonne journée,
Steph. D.
1 2 3