OVH Cloud OVH Cloud

Imprimer économiquement

12 réponses
Avatar
Horace Rochat
Bonjour,
Je dispose d'une feuille simple: une seule colonne sur=20
3800 lignes; je voudrais l'imprimer mais je voudrais=20
limiter le nombre de feuilles imprim=E9es, donc transformer=20
ce tableau d'une seule colonne en, disons 4 colonnes,=20
pour l'impression seulement.
Est-ce qu'il y a un truc?
Merci
H.R.

2 réponses

1 2
Avatar
Horace Rochat
Bonjour,
J'ai répondu trop vite; je ne me suis pas aperçu que si
la première page était effectivement pââârfaite, il y a
un décalage pour les suivantes: la découpe mange au moins
une cellule par page et il y a un décalage qui s'ensuit
Cordialement,
HR
-----Message d'origine-----
Bonjour,

Cette version est-elle plus proche de ton besoin :

'======================== ==
Sub RedecoupeColonne()
Dim Plage, i&, j&, k&, Page&
Dim ColADecouper, NbLiParPage, AperçuOuImpression

'paramètres du découpage
ColADecouper = InputBox("Colonne à redécouper
(lettre)", , "A")

If ColADecouper = "" Then Exit Sub

NbLiParPage = InputBox("Nombre de lignes
des 'tranches' de la colonne", , 50)

If NbLiParPage = "" Then Exit Sub

AperçuOuImpression = _
InputBox("Terminer par Imprimer (P) ou Aperçu avant
impression (A)", , "A")

If AperçuOuImpression = "" Then Exit Sub

'traitement
Set Plage = Range(Cells(1, ColADecouper), _
Cells(Rows.Count, ColADecouper).End
(xlUp))

Sheets.Add
j = 1: Page = 0: k = 0
For i = 1 To Plage.Count Step NbLiParPage
If j > 5 Then
j = 1: Page = Page + 1: k = k + 1
End If
Cells(1 + k + (Page * NbLiParPage), j).Resize
(NbLiParPage).Value = _

Plage.Cells(i, "A").Resize(NbLiParPage).Value
j = j + 1
Next i

'impression ou aperçu
With ActiveSheet
If UCase(AperçuOuImpression) = "P" Then
.PrintOut
Else
.PrintPreview
End If
End With

End Sub 'fs
'======================== ==

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


J'aime beaucoup la première macro, mais elle a un
inconvénient majeur, c'est que la suite de la première
colonne de la première page se trouve sur la première
colonne de la deuxième page, au lieu d'être sur la
deuxième colonne de la première page.
Est-il possible de modifier la macro dans ce sens?
L'avantage majeur de cette macro c'est qu'elle permet
la


visualisation avant d'imprimer.
Merci
H.R.

-----Message d'origine-----
Bonjour,

Peut-être cette solution :



http://perso.wanadoo.fr/frederic.sigonneau/code/Impr/Impr

essionColonnesRedecoupees3.txt

Sinon, d'autres idées dans cette page :

http://perso.wanadoo.fr/frederic.sigonneau/code/Impr

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma
bal !





Bonjour,
Je dispose d'une feuille simple: une seule colonne
sur




3800 lignes; je voudrais l'imprimer mais je voudrais
limiter le nombre de feuilles imprimées, donc
transformer


ce tableau d'une seule colonne en, disons 4
colonnes,




pour l'impression seulement.
Est-ce qu'il y a un truc?
Merci
H.R.


.




.






Avatar
Frédéric Sigonneau
Re,

As-tu essayé de faire varier le nombre de lignes des 'tranches' de colonne à
découper. Avec 55 lignes, j'obtiens sur mon poste une répartition régulière des
pages, sans les trous dont tu parles, qui ne sont pas dûs à la découpe, mais à
une insertion volontaire d'une ligne vide entre les pages pour les repérer.

Si cette ligne vide te pose problème, voici une version sans, avec également la
possibilité de choisir le nombre de colonnes à remplir sur les feuilles à
imprimer (j'avais mis 5 un peu au hasard). Dans cette version, 56 lignes comme
hauteur des 'tranches' de la colonne à découper donnent chez moi une mise en
page sans trous.

'=========================== Sub RedecoupeColonneV2()
Dim Plage, i&, j&, k&, Page&
Dim ColADecouper, NbLiParPage, NbColSortie, AperçuOuImpression

'paramètres du découpage
ColADecouper = InputBox("Colonne à redécouper (lettre)", , "A")
If ColADecouper = "" Then Exit Sub

NbLiParPage = InputBox("Nombre de lignes des 'tranches' de la colonne", , 56)
If NbLiParPage = "" Then Exit Sub

NbColSortie = InputBox("Nombre de colonnes remplies en sortie", , 5)
If NbColSortie = "" Then Exit Sub

AperçuOuImpression = _
InputBox("Terminer par Imprimer (P) ou Aperçu avant impression (A)", , "A")
If AperçuOuImpression = "" Then Exit Sub

'traitement
Set Plage = Range(Cells(1, ColADecouper), _
Cells(Rows.Count, ColADecouper).End(xlUp))
Sheets.Add
j = 1: Page = 0: k = 0
For i = 1 To Plage.Count Step NbLiParPage
If j > NbColSortie Then
j = 1: Page = Page + 1: k = k + 1
End If
Cells(1 + (Page * NbLiParPage), j).Resize(NbLiParPage).Value = _
Plage.Cells(i, "A").Resize(NbLiParPage).Value
j = j + 1
Next i

'impression ou aperçu
With ActiveSheet
If UCase(AperçuOuImpression) = "P" Then
.PrintOut
Else
.PrintPreview
End If
End With

End Sub 'fs
'===========================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,
J'ai répondu trop vite; je ne me suis pas aperçu que si
la première page était effectivement pââârfaite, il y a
un décalage pour les suivantes: la découpe mange au moins
une cellule par page et il y a un décalage qui s'ensuit
Cordialement,
HR
-----Message d'origine-----
Bonjour,

Cette version est-elle plus proche de ton besoin :

'========================= > >Sub RedecoupeColonne()
Dim Plage, i&, j&, k&, Page&
Dim ColADecouper, NbLiParPage, AperçuOuImpression

'paramètres du découpage
ColADecouper = InputBox("Colonne à redécouper
(lettre)", , "A")

If ColADecouper = "" Then Exit Sub

NbLiParPage = InputBox("Nombre de lignes
des 'tranches' de la colonne", , 50)

If NbLiParPage = "" Then Exit Sub

AperçuOuImpression = _
InputBox("Terminer par Imprimer (P) ou Aperçu avant
impression (A)", , "A")

If AperçuOuImpression = "" Then Exit Sub

'traitement
Set Plage = Range(Cells(1, ColADecouper), _
Cells(Rows.Count, ColADecouper).End
(xlUp))

Sheets.Add
j = 1: Page = 0: k = 0
For i = 1 To Plage.Count Step NbLiParPage
If j > 5 Then
j = 1: Page = Page + 1: k = k + 1
End If
Cells(1 + k + (Page * NbLiParPage), j).Resize
(NbLiParPage).Value = _

Plage.Cells(i, "A").Resize(NbLiParPage).Value
j = j + 1
Next i

'impression ou aperçu
With ActiveSheet
If UCase(AperçuOuImpression) = "P" Then
.PrintOut
Else
.PrintPreview
End If
End With

End Sub 'fs
'========================= > >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


J'aime beaucoup la première macro, mais elle a un
inconvénient majeur, c'est que la suite de la première
colonne de la première page se trouve sur la première
colonne de la deuxième page, au lieu d'être sur la
deuxième colonne de la première page.
Est-il possible de modifier la macro dans ce sens?
L'avantage majeur de cette macro c'est qu'elle permet
la


visualisation avant d'imprimer.
Merci
H.R.

-----Message d'origine-----
Bonjour,

Peut-être cette solution :



http://perso.wanadoo.fr/frederic.sigonneau/code/Impr/Impr

essionColonnesRedecoupees3.txt

Sinon, d'autres idées dans cette page :

http://perso.wanadoo.fr/frederic.sigonneau/code/Impr

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma
bal !





Bonjour,
Je dispose d'une feuille simple: une seule colonne
sur




3800 lignes; je voudrais l'imprimer mais je voudrais
limiter le nombre de feuilles imprimées, donc
transformer


ce tableau d'une seule colonne en, disons 4
colonnes,




pour l'impression seulement.
Est-ce qu'il y a un truc?
Merci
H.R.


.




.








1 2