A veces, los datos que recopila en una hoja de trabajo encajan muy bien en una sola columna. Por ejemplo, puede tener una lista de nombres y todos están contenidos en la columna A de su hoja de trabajo. Cuando elige imprimir la hoja de trabajo, puede consumir bastantes páginas, todas casi en blanco ya que el lado izquierdo de cada página contiene un nombre y el lado derecho contiene espacios en blanco.

En este tipo de caso, sería bueno imprimir una sola columna como si fueran múltiples columnas. De esa manera, podría utilizar más de cada página impresa y menos páginas generales para su trabajo de impresión. Desafortunadamente, Excel no contiene ningún comando intrínseco o configuración de impresión que le permita reformatear automáticamente sus datos para que se impriman mejor. Sin embargo, existen soluciones alternativas.

Una solución alternativa que a menudo se pasa por alto es simplemente copiar la lista de una sola columna en un documento de Word en blanco. Si lo pega allí como texto sin formato, puede formatear cada página para varias columnas e imprimir la información.

Si prefiere no involucrar a Word, puede cortar y pegar información de la primera columna en otras columnas para obtener el número deseado de columnas de impresión. Esto, por supuesto, debe hacerse en una nueva hoja de trabajo o libro de trabajo, para que los datos originales permanezcan intactos. Por ejemplo, si tiene 200 nombres en su lista original, puede cortar 40 nombres a la vez de la lista y pegarlos en las columnas A a E de una nueva hoja de trabajo. Imprimir esta hoja de trabajo requiere menos páginas que imprimir la hoja de trabajo original de una sola columna.

Por supuesto, si tiene que hacer este proceso de cortar y pegar con frecuencia, la tarea puede volverse tediosa rápidamente. En este caso, puede usar una macro que haga exactamente lo mismo: corta y corta en cuadritos la lista original y la pega en varias columnas en un nuevo libro de trabajo.

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

Cuando ejecute esta macro, se le pedirá que seleccione el rango que desea convertir, y luego se le pedirá que especifique el número de columnas que desea que se formatee. Crea una nueva hoja de trabajo en el libro actual y copia la información del original en tantas columnas como haya especificado.

Para obtener recursos adicionales para resolver este problema, consulte los siguientes sitios web:

http://www.ozgrid.com/VBA/MiscVBA.htm#Print http://dmcritchie.mvps.org/excel/snakecol.htm

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (8239) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Printing_a_Single_Column_in_Multiple_Columns [Impresión de una sola columna en múltiples columnas].