Passer au contenu principal

Comment imprimer une longue colonne sur une page dans Excel?

Supposons que vous ayez une longue liste de données dans une colonne, peut-être 200 lignes, et que vous deviez maintenant les imprimer, mais lorsque vous imprimez, il utilise environ 5 pages de papier, avec une seule colonne sur le côté gauche et beaucoup d'espace blanc sur Le côté droit. En bref, vous pouvez créer des colonnes, mais Excel n'a pas cette fonction. Comment imprimer les données de la longue liste sur une page pour économiser le papier?

Imprimer une longue colonne sur une page avec une formule

Imprimer une longue colonne sur une page avec le code VBA

Imprimer une longue colonne sur une page avec Kutools for Excel


flèche bleue bulle droite Imprimer une longue colonne sur une page avec une formule

Ici, je peux vous présenter une longue formule pour résoudre ce problème, procédez comme suit:

1. Dans une nouvelle feuille de calcul de votre classeur actif, entrez la formule =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) dans la cellule A1.

Notes: Sheet1 est la feuille de calcul qui contient la longue liste que vous souhaitez mettre en colonne.

45 est le numéro de ligne pour lequel vous souhaitez répertorier les données dans une colonne.

Ce sont toutes des variables et vous pouvez les modifier selon vos besoins.

2. Sélectionnez ensuite la cellule A1 et faites glisser la poignée de remplissage vers le bas jusqu'à la ligne 45, puis continuez à faire glisser la poignée de remplissage vers la droite jusqu'à ce que les données soient affichées. Et la longue colonne a été divisée en plusieurs colonnes pour tenir sur une page dans une nouvelle feuille de calcul. Voir la capture d'écran:

doc-print-longue-colonne1


flèche bleue bulle droite Imprimer une longue colonne sur une page avec le code VBA

Le code VBA suivant peut également vous aider à diviser une longue liste de données en plusieurs colonnes, afin que vous puissiez imprimer les données et économiser du papier.

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans la fenêtre Module.

Sub SingleToMultiColumn()
    Dim rng As Range
    Dim iCols As Integer
    Dim lRows As Long
    Dim iCol As Integer
    Dim lRow As Long
    Dim lRowSource As Long
    Dim x As Long
    Dim wks As Worksheet
    Set rng = Application.InputBox _
      (prompt:="Select the range to convert", _
      Type:=8)
    iCols = InputBox("How many columns do you want?")
    lRowSource = rng.Rows.Count
    lRows = lRowSource / iCols
    If lRows * iCols <> lRowSource Then lRows = lRows + 1
    Set wks = Worksheets.Add
    lRow = 1
    x = 1
    For iCol = 1 To iCols
        Do While x <= lRows And lRow <= lRowSource
            Cells(x, iCol) = rng.Cells(lRow, 1)
            x = x + 1
            lRow = lRow + 1
        Loop
        x = 1
    Next
End Sub

3. Puis appuyez sur F5 clé pour exécuter ce code, et sélectionnez les données de la liste que vous souhaitez diviser dans la boîte de dialogue qui s'affiche, voir capture d'écran:

doc-print-longue-colonne2

4Cliquez sur OKet entrez le nombre de colonnes que vous souhaitez diviser. Voir la capture d'écran:

doc-print-longue-colonne3

5. Et cliquez sur OK, la longue colonne a été divisée en cinq colonnes dans une nouvelle feuille de calcul. Voir les captures d'écran:

doc-print-longue-colonne4 -2 doc-print-longue-colonne5

flèche bleue bulle droite Imprimer une longue colonne sur une page avec Kutools for Excel

La formule longue et le code VBA peuvent être difficiles pour vous, je peux ici vous présenter une méthode simple et pratique pour résoudre ce problème. Kutools for Excel's Imprimer plusieurs colonnes La fonction peut vous aider à diviser rapidement la longue colonne en plusieurs colonnes afin que vous puissiez les imprimer de manière raisonnable.

Kutools for Excel comprend plus de 300 outils Excel pratiques. Essai gratuit sans limitation de 30 jours. Obtenez-le maintenant.

Lorsque vous avez installé Kutools pour Excel, vous pouvez procéder comme suit :

1Cliquez sur Entreprise > Imprimer plusieurs colonnes, voir capture d'écran:

doc-print-longue-colonne6

2. Dans le Imprimer plusieurs colonnes boite de dialogue:

  • Cliquez sur le premier bouton doc pour sélectionner le titre de la plage, puis cliquez sur le deuxième bouton docpour sélectionner la colonne à diviser.
  • Spécifiez ensuite le nombre de lignes que vous souhaitez insérer par page à partir de Lignes par page imprimée, et entrez le nombre de colonnes que vous voulez dans une page sous Nombre de segments. Voir la capture d'écran:

doc-print-longue-colonne7

3. Puis clique OK, les données de la longue liste ont été divisées en cinq colonnes dans une page. Voir les captures d'écran:

doc-print-longue-colonne8 -2 doc-print-longue-colonne9

Notes:

1. Le titre sera ajouté avant chaque colonne.

2. Si vous cochez Créer un lien avec la feuille active option, les nouvelles données de la feuille de calcul peuvent être liées aux données source.

Si vous souhaitez en savoir plus sur cette fonctionnalité, veuillez cliquer sur Imprimer plusieurs colonnes.

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
Comments (14)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
I have a column of 10,000 unique numbers, all sorted. The VBA code provides a table, but the Columns are sorted individually.
I would prefer that each page is sorted numerically so easy to follow the data page by page. Any suggestions most welcome.
Keith
This comment was minimized by the moderator on the site
Hello, Paterson,
Maybe the following VBA code can do you a favor:
Sub SingleToMultiColumn()
    Dim xRng As Range
    Dim xCount As Integer
    Dim xICols As Integer
    Dim xLRows As Long
    Dim xICol As Integer
    Dim xLRow As Long
    Dim xLRowSource As Long
    Dim xRowNum As Long
    Dim xFCount, xFNum, xFNum_R, xFNum_C As Long
    Dim x As Long
    Dim xWst As Worksheet
    Dim xJ As Integer
    
    Set xRng = Application.InputBox(prompt:="Select the range to convert", Type:=8)
    xICols = InputBox("How many columns do you want?")
    xRowNum = InputBox("How many rows do you want in a page?")
    xCount = xRng.Count
    xFCount = Fix(xCount / (xICols * xRowNum))
    If xICols * xRowNum * xFCount < xCount Then xFCount = xFCount + 1
    Set xWst = Worksheets.Add
    xJ = 0
    Application.ScreenUpdating = False
    For xFNum = 1 To xFCount
        If xJ = xCount Then Exit For
        For xFNum_C = 1 To xICols
            If xJ = xCount Then Exit For
            For xFNum_R = 1 To xRowNum
                If xJ = xCount Then Exit For
                xWst.Cells((xFNum - 1) * xRowNum + xFNum_R, xFNum_C) = xRng.Item(xJ + 1)
                xJ = xJ + 1
            Next
        Next
    Next
     Application.ScreenUpdating = True
End Sub



Please try, hope it can help you!
This comment was minimized by the moderator on the site
I have a column of 10,000 numbers and the VBA macro will provide a table on several pages. However, I would prefer that each page is sorted numerically rather than the column. Any help appreciated.
This comment was minimized by the moderator on the site
Or you can just copy the table, and paste it in a word document, with as many columns you want to have.
This comment was minimized by the moderator on the site
Thank you! The formula worked seamlessly!
This comment was minimized by the moderator on the site
You can use a simple formula =OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0) to let the data flow horizontally in 5 columns. Then you can select Page size, print first row on each page, etc. Simple, neat, no VBA
This comment was minimized by the moderator on the site
where does this formula go? I am trying to print multiple rows with several columns on one page in a multiple row layout. Similar to this:

john smith week 1
john smith week 2
john smith totals


I have over 100 rows with up to IJ
This comment was minimized by the moderator on the site
Is there a way to modify this formula to work with 3 columns instead of 1?
This comment was minimized by the moderator on the site
Modern Excel (e.g. 365) can use this for single column:
=WRAPCOLS(Sheet1!$A$1:$A$50;45;"")

Similarly, if you want the column spread horizontally use:
=WRAPROWS(Sheet1!$A$1:$A$50;3;"")


If you need multiple columns converted, I created this formula:
=LET(SOURCE;Sheet1!$A$1;R;45;C;3;X;MOD(COLUMN()-1;C);NEW_REL_COL;INT((COLUMN()-1)/C);Y;(NEW_REL_COL)*R+ROW()-1;V;OFFSET(SOURCE;Y;X);IF(OR(V="";ROW()>R);"";V))

Update SOURCE (Sheet1!$A$1) to be the top-left corner of your source, the number behind R (45) for the rows; the number behind C (3) for the columns of your source.

e.g. for output of 2 columns with 30 rows start the formula with =LET(SOURCE;Sheet1!$A$1;R;30;C;2;


On modern Excel (e.g. 365) can use this Spill-Function for multicolumn with an added empty column in between:

=LET(R;45;C;3;EMPTY_COL;TRUE;
E;IF(EMPTY_COL;1;0);ANZ;COUNTA(Sheet1!$A:$A);MY;R;MX;CEILING.MATH(ANZ/MY;1)*(C+E);
MAKEARRAY(MY;MX;LAMBDA(ru;co;
LET(X;MOD(co-1;(C+E));NEW_REL_COL;INT((co-1)/(C+E));Y;(NEW_REL_COL)*R+ru-1;
IF(OR(AND(EMPTY_COL;X=(C+E-1));Y>=ANZ);"";OFFSET(Sheet1!$A$1;Y;X))
))))

Needs to be filled only in one cell and fills out down and right.
Use R and C like above. Fill the value EMPTY_COL with true or false if you want an empty column to be added between the repetitions.
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
I would be interested in a solution like this as well.
This comment was minimized by the moderator on the site
Dear Sir Thanks for this work, This VBA Code is very helpful for my work, I am glad to complete my task in seconds. Thank You. ....
This comment was minimized by the moderator on the site
After searching the internet for hours, I stumbled across this. Its exactly what I was looking for. Nice job and thanks for taking the time out for this.
This comment was minimized by the moderator on the site
Thank you for this information! It was very helpful and easy to use - even for somebody lacking strong computer skills (I used the first method)
This comment was minimized by the moderator on the site
Hello, I have a question related to the second option "Print long column on one page with VBA code". If i have more than one column in range how can I use the same code. Let say the range of "$A$2:$C$118" how can i do it work. Thanks.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations