J'ai une longue liste de références produits. A l'impression, je perds
bcp de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3
colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ?
Ou faut il coder une macro qui fasse la mise en page en colonne ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Angelosanto
Oui tu peux faire une macro "Format imprimable" qui te mettrait plusieurs colonnes sur une page avec le nombre de lignes tenant dans une page. Par exemple si les références sont en colonne A et si 50 lignes par page sub format_imprimable() maxl=range("A65535").end(xlup).row t3=2 for t=1 to maxl for t1=1 to 50 cells(t3,t1)Îlls(t,1) next t1 t3=t3+1 next t end sub
définir la zone imprimable à partir de la colonne 2, une fois imprimé, effacer la zone imprimable. Cela peut aussi s'automatiser A+ "droopy191" <droopy191+ a écrit dans le message de news:484d8cd2$0$10461$
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3 colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ? Ou faut il coder une macro qui fasse la mise en page en colonne ?
merci pour vos idées
-- DR
-- Michel Angelosanto, Bordeaux http://angelosa.free.fr/
Oui tu peux faire une macro "Format imprimable" qui te mettrait plusieurs
colonnes sur une page avec le nombre de lignes tenant dans une page.
Par exemple si les références sont en colonne A et si 50 lignes par page
sub format_imprimable()
maxl=range("A65535").end(xlup).row
t3=2
for t=1 to maxl
for t1=1 to 50
cells(t3,t1)Îlls(t,1)
next t1
t3=t3+1
next t
end sub
définir la zone imprimable à partir de la colonne 2, une fois imprimé,
effacer la zone imprimable.
Cela peut aussi s'automatiser
A+
"droopy191" <droopy191+ng_pas_de_spam@free.fr.invalid> a écrit dans le
message de news:484d8cd2$0$10461$426a74cc@news.free.fr...
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp
de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3
colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ?
Ou faut il coder une macro qui fasse la mise en page en colonne ?
merci pour vos idées
--
DR
--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/
Oui tu peux faire une macro "Format imprimable" qui te mettrait plusieurs colonnes sur une page avec le nombre de lignes tenant dans une page. Par exemple si les références sont en colonne A et si 50 lignes par page sub format_imprimable() maxl=range("A65535").end(xlup).row t3=2 for t=1 to maxl for t1=1 to 50 cells(t3,t1)Îlls(t,1) next t1 t3=t3+1 next t end sub
définir la zone imprimable à partir de la colonne 2, une fois imprimé, effacer la zone imprimable. Cela peut aussi s'automatiser A+ "droopy191" <droopy191+ a écrit dans le message de news:484d8cd2$0$10461$
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3 colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ? Ou faut il coder une macro qui fasse la mise en page en colonne ?
merci pour vos idées
-- DR
-- Michel Angelosanto, Bordeaux http://angelosa.free.fr/
Mgr T. Banni
bonjour droopy essaie cette proc (qui en exécute une seconde) signée Frédéric Sigonneau
Sub testImpr() '' cette msgbox ne sert à rien puisque la macro ajoute une '' feuille automatiquement ' alerte = MsgBox("avez-vous bien au moins une feuille vide dans ce classeur", _ ' vbYesNo, "ACHTUNG MINEN GEFAHR") ' If alerte = vbNo Then Exit Sub ' On Error GoTo Fin nFeuille = InputBox("Feuille à traiter :") nCell = InputBox _ ("Notez une cellule de la colonne à découper (ex A1) :") nCol = InputBox("Nb de colonnes dans la présentation :") nLi = InputBox("Nb de lignes par pages après découpage :") ImprimeEnColonnes nFeuille, Range(nCell), nCol, nLi, True 'Fin: ' Exit Sub End Sub
Sub ImprimeEnColonnes(ByVal NomFeuille As String, _ Source As Range, _ ByVal nbcol As Byte, _ ByVal nbLi As Byte, _ ByVal Aperçu As String) Dim ShSrc As Worksheet, ShTmp As Worksheet Set ShSrc = ActiveWorkbook.Worksheets(NomFeuille) Application.ScreenUpdating = False Set ShTmp = ActiveWorkbook.Worksheets.Add 'Set ShTmp = ActiveWorkbook.Worksheets(Worksheets.Count) On Error GoTo Fin derli = Source.End(xlDown).Row colSrc = Source.Column ShSrc.Activate ShSrc.Range(Cells(1, colSrc), Cells(derli, colSrc)).Select Selection.Copy ShTmp.Activate ShTmp.Range("A1").PasteSpecial xlPasteAll With ActiveSheet x = 1 For i = 1 To derli For y = 2 To nbcol + 1 .Range(Cells(i, 1), Cells(i + nbLi - 1, 1)).Select Selection.Copy .Cells(x, y).PasteSpecial xlPasteAll i = i + nbLi Next y x = x + nbLi i = i - 1 Next i .Columns(1).Delete .UsedRange.Columns.AutoFit For i = nbLi To .UsedRange.End(xlDown).Row Step nbLi .HPageBreaks.Add Before:=.Range("A" & i + 1) Next i If UCase(Aperçu) = "P" Then .PrintOut Else .PrintPreview End If End With Application.DisplayAlerts = False 'ici j'ai supprimé l'annulation de la feuille temporaire 'de façon à la conserver dans le fichier ' ShTmp.Delete Application.DisplayAlerts = True ShSrc.Activate [A1].Select Fin: Application.ScreenUpdating = True End Sub
HTH Mgr T.B. (qui prie pour le salut de l'âme de Joël Chaudy dont le forum MS Excel fout le camp malgré les relances décadaires d'icelui)
"droopy191" <droopy191+ a écrit dans le message de news: 484d8cd2$0$10461$
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3 colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ? Ou faut il coder une macro qui fasse la mise en page en colonne ?
merci pour vos idées
-- DR
bonjour droopy
essaie cette proc (qui en exécute une seconde) signée Frédéric Sigonneau
Sub testImpr()
'' cette msgbox ne sert à rien puisque la macro ajoute une
'' feuille automatiquement
' alerte = MsgBox("avez-vous bien au moins une feuille vide dans ce
classeur", _
' vbYesNo, "ACHTUNG MINEN GEFAHR")
' If alerte = vbNo Then Exit Sub
' On Error GoTo Fin
nFeuille = InputBox("Feuille à traiter :")
nCell = InputBox _
("Notez une cellule de la colonne à découper (ex A1) :")
nCol = InputBox("Nb de colonnes dans la présentation :")
nLi = InputBox("Nb de lignes par pages après découpage :")
ImprimeEnColonnes nFeuille, Range(nCell), nCol, nLi, True
'Fin:
' Exit Sub
End Sub
Sub ImprimeEnColonnes(ByVal NomFeuille As String, _
Source As Range, _
ByVal nbcol As Byte, _
ByVal nbLi As Byte, _
ByVal Aperçu As String)
Dim ShSrc As Worksheet, ShTmp As Worksheet
Set ShSrc = ActiveWorkbook.Worksheets(NomFeuille)
Application.ScreenUpdating = False
Set ShTmp = ActiveWorkbook.Worksheets.Add
'Set ShTmp = ActiveWorkbook.Worksheets(Worksheets.Count)
On Error GoTo Fin
derli = Source.End(xlDown).Row
colSrc = Source.Column
ShSrc.Activate
ShSrc.Range(Cells(1, colSrc), Cells(derli, colSrc)).Select
Selection.Copy
ShTmp.Activate
ShTmp.Range("A1").PasteSpecial xlPasteAll
With ActiveSheet
x = 1
For i = 1 To derli
For y = 2 To nbcol + 1
.Range(Cells(i, 1), Cells(i + nbLi - 1, 1)).Select
Selection.Copy
.Cells(x, y).PasteSpecial xlPasteAll
i = i + nbLi
Next y
x = x + nbLi
i = i - 1
Next i
.Columns(1).Delete
.UsedRange.Columns.AutoFit
For i = nbLi To .UsedRange.End(xlDown).Row Step nbLi
.HPageBreaks.Add Before:=.Range("A" & i + 1)
Next i
If UCase(Aperçu) = "P" Then
.PrintOut
Else
.PrintPreview
End If
End With
Application.DisplayAlerts = False
'ici j'ai supprimé l'annulation de la feuille temporaire
'de façon à la conserver dans le fichier
' ShTmp.Delete
Application.DisplayAlerts = True
ShSrc.Activate
[A1].Select
Fin:
Application.ScreenUpdating = True
End Sub
HTH
Mgr T.B. (qui prie pour le salut de l'âme de Joël Chaudy dont le forum MS
Excel fout le camp malgré les relances décadaires d'icelui)
"droopy191" <droopy191+ng_pas_de_spam@free.fr.invalid> a écrit dans le
message de news: 484d8cd2$0$10461$426a74cc@news.free.fr...
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp
de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3
colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ?
Ou faut il coder une macro qui fasse la mise en page en colonne ?
bonjour droopy essaie cette proc (qui en exécute une seconde) signée Frédéric Sigonneau
Sub testImpr() '' cette msgbox ne sert à rien puisque la macro ajoute une '' feuille automatiquement ' alerte = MsgBox("avez-vous bien au moins une feuille vide dans ce classeur", _ ' vbYesNo, "ACHTUNG MINEN GEFAHR") ' If alerte = vbNo Then Exit Sub ' On Error GoTo Fin nFeuille = InputBox("Feuille à traiter :") nCell = InputBox _ ("Notez une cellule de la colonne à découper (ex A1) :") nCol = InputBox("Nb de colonnes dans la présentation :") nLi = InputBox("Nb de lignes par pages après découpage :") ImprimeEnColonnes nFeuille, Range(nCell), nCol, nLi, True 'Fin: ' Exit Sub End Sub
Sub ImprimeEnColonnes(ByVal NomFeuille As String, _ Source As Range, _ ByVal nbcol As Byte, _ ByVal nbLi As Byte, _ ByVal Aperçu As String) Dim ShSrc As Worksheet, ShTmp As Worksheet Set ShSrc = ActiveWorkbook.Worksheets(NomFeuille) Application.ScreenUpdating = False Set ShTmp = ActiveWorkbook.Worksheets.Add 'Set ShTmp = ActiveWorkbook.Worksheets(Worksheets.Count) On Error GoTo Fin derli = Source.End(xlDown).Row colSrc = Source.Column ShSrc.Activate ShSrc.Range(Cells(1, colSrc), Cells(derli, colSrc)).Select Selection.Copy ShTmp.Activate ShTmp.Range("A1").PasteSpecial xlPasteAll With ActiveSheet x = 1 For i = 1 To derli For y = 2 To nbcol + 1 .Range(Cells(i, 1), Cells(i + nbLi - 1, 1)).Select Selection.Copy .Cells(x, y).PasteSpecial xlPasteAll i = i + nbLi Next y x = x + nbLi i = i - 1 Next i .Columns(1).Delete .UsedRange.Columns.AutoFit For i = nbLi To .UsedRange.End(xlDown).Row Step nbLi .HPageBreaks.Add Before:=.Range("A" & i + 1) Next i If UCase(Aperçu) = "P" Then .PrintOut Else .PrintPreview End If End With Application.DisplayAlerts = False 'ici j'ai supprimé l'annulation de la feuille temporaire 'de façon à la conserver dans le fichier ' ShTmp.Delete Application.DisplayAlerts = True ShSrc.Activate [A1].Select Fin: Application.ScreenUpdating = True End Sub
HTH Mgr T.B. (qui prie pour le salut de l'âme de Joël Chaudy dont le forum MS Excel fout le camp malgré les relances décadaires d'icelui)
"droopy191" <droopy191+ a écrit dans le message de news: 484d8cd2$0$10461$
Bonjour,
J'ai une longue liste de références produits. A l'impression, je perds bcp de place. L'idéal serait d'imprimer en format paysage avec 2 ou 3 colonnes par page.
Est ce possible avec les fonctions par défaut de excel 2003 ? Ou faut il coder une macro qui fasse la mise en page en colonne ?
merci pour vos idées
-- DR
Modeste
Bonsour® Mgr T. Banni avec ferveur ;o))) vous nous disiez :
"ACHTUNG MINEN GEFAHR"
Mgr T.B. (qui prie pour le salut de l'âme de Joël Chaudy dont le forum MS Excel fout le camp malgré les relances décadaires d'icelui)
;o)))
10/06/2008 22:29 à ce propos Fredo P disait :
tu aurais quand même pu l'aider à en sortir, il nous remettrait un peu d'ambiance sur mpfe!!
-- -- @+ ;o)))
Bonsour® Mgr T. Banni avec ferveur ;o))) vous nous disiez :
"ACHTUNG MINEN GEFAHR"
Mgr T.B. (qui prie pour le salut de l'âme de Joël Chaudy dont le
forum MS Excel fout le camp malgré les relances décadaires d'icelui)
;o)))
10/06/2008 22:29
à ce propos Fredo P disait :
tu aurais quand même pu l'aider à en sortir, il nous remettrait un
peu d'ambiance sur mpfe!!