Mitchell tiene una gran cantidad de datos en una hoja de trabajo que representa todos los ordenes de compra de su empresa durante un año. Los datos se ordenan en la columna C, que contiene los nombres de los proveedores. Mitchell quiere imprimir una página separada para cada proveedor con todos los datos de esas filas. Se pregunta si existe alguna forma de automatizar la impresión de hojas específicas del proveedor.

Como sucede con muchas cosas en Excel, existen varios enfoques que puede adoptar para este problema. Voy a ver cuatro enfoques en este consejo. Los cuatro enfoques asumen que sus datos están ordenados de acuerdo con la columna del nombre del proveedor (columna C) y que tiene encabezados de columna en cada columna de sus datos (nombre, fecha, número de orden de compra, proveedor, etc.).

Usando subtotales

Para imprimir hojas específicas del proveedor usando subtotales, comience seleccionando una celda dentro de sus datos. (Una celda en la columna C sería perfecta). Si sus datos no son contiguos, es posible que deba seleccionarlos todos manualmente; sin embargo, si es contigua, seleccionar la celda única debería ser suficiente. Luego, sigue estos pasos:

  1. Muestre la pestaña Datos de la cinta.

  2. En el grupo Esquema, haga clic en la herramienta Subtotal. Excel muestra el cuadro de diálogo Subtotal. (Ver figura 1)

  3. Asegúrese de que la lista desplegable En cada cambio en esté establecida en Proveedor. (Utilice el nombre de la columna C.) Esto indica dónde insertará Excel los subtotales.

  4. La lista desplegable Usar función debe establecerse en Recuento.

  5. Usando la lista en el cuadro Agregar subtotal a, seleccione la columna Proveedor (columna C). Aquí es donde se agregará el recuento.

  6. Asegúrese de que la casilla de verificación Reemplazar subtotales actuales esté seleccionada.

  7. Asegúrese de que la casilla de verificación Saltos de página entre grupos esté seleccionada.

  8. Asegúrese de que la casilla de verificación Resumen debajo de los datos esté seleccionada.

  9. Haga clic en Aceptar.

Excel coloca subtotales en su hoja de trabajo, pero también debe colocar saltos de página antes de cada nuevo proveedor. (Esto se debe al paso 7 anterior). Los saltos de página pueden no ser obvios de inmediato, pero entran en juego cuando imprime la hoja de trabajo.

Una vez impresa, lo que obtiene es una página impresa para cada uno de sus proveedores. El subtotal justo debajo de la última fila de cada página indica el número de órdenes de compra impresas para ese proveedor en particular.

Uso de datos filtrados

Filtrar sus datos es bastante fácil y este es un buen enfoque si no necesita imprimir este tipo de informes con tanta frecuencia. Nuevamente, comience seleccionando una celda dentro de sus datos, a menos que sus datos no sean contiguos.

(En ese caso, deberá seleccionar manualmente todos sus datos). Luego, siga estos pasos:

  1. Muestre la pestaña Datos de la cinta.

  2. Haga clic en la herramienta Filtro dentro del grupo Ordenar y filtrar. Excel debe mostrar los indicadores desplegables de Autofiltro junto a la etiqueta de cada columna en la fila 1.

  3. Con el indicador desplegable de la columna Proveedor (columna C), elija el nombre del proveedor que desea imprimir. Su lista se filtra automáticamente para mostrar solo las órdenes de compra de ese proveedor.

  4. Imprima la página como lo haría normalmente. El informe impreso debe mostrar solo las órdenes de compra del proveedor que especificó en el paso 3.

Si desea imprimir informes para otros proveedores, todo lo que necesita hacer es cambiar el filtro (paso 3) y reimprimir (paso 4). Cuando haya terminado, puede eliminar el filtro haciendo clic nuevamente en la herramienta Filtro en la pestaña Datos de la cinta.

Usando tablas dinámicas

Otra forma rápida de crear los informes que desea es utilizar las funciones de tabla dinámica de Excel. No entraré en cómo crear una tabla dinámica aquí, ya que se ha tratado en otros problemas de ExcelTips. Su tabla dinámica se puede configurar casi de la forma que desee, pero debe asegurarse de que el campo Proveedor esté en el grupo Filtros del panel Campos de tabla dinámica. (Ver figura 2)

image

Figura 2. Configuración de su tabla dinámica.

A continuación, muestre la pestaña Opciones o Analizar de la cinta, según su versión de Excel. (Estas pestañas solo están visibles cuando selecciona una celda dentro de su tabla dinámica). En el grupo Tabla dinámica, a la izquierda de la cinta, haga clic en la lista desplegable Opciones y elija Mostrar páginas de filtro de informe. (Esta opción está disponible solo si se aseguró de que el campo Proveedor esté en el grupo Filtros, como se mencionó anteriormente). Excel muestra el cuadro de diálogo Mostrar páginas de filtro de informe. (Vea la figura 3.)

image

Figura 3. El cuadro de diálogo Mostrar páginas de filtro de informe.

Debe haber solo un campo en el cuadro de diálogo, a menos que haya agregado más que el campo Proveedor al grupo Filtros. Si hay más de un campo en la lista, asegúrese de hacer clic en el campo Proveedor. Cuando hace clic en Aceptar, Excel crea hojas de trabajo de tabla dinámica separadas para cada proveedor en su tabla de datos. Según la información que elija incluir en la tabla dinámica, estos pueden generar excelentes informes para sus proveedores. Luego puede imprimir las hojas de trabajo para obtener los informes que desee.

Usando macros

Hay muchas formas en las que puede configurar una macro para que le proporcione los datos que desea. Personalmente, prefiero una macro que revise sus datos y cree nuevas hojas de trabajo para cada proveedor. Eso es lo que hace la siguiente macro: compila una lista de proveedores a partir de sus datos y luego crea una hoja de trabajo con el nombre de cada proveedor. Luego copia la información de la hoja de trabajo original a las hojas de trabajo recién creadas.

Sub CreateVendorSheets()

' To use this macro, select the first cell in     ' the column that contains the vendor names.



Dim sTemp As String     Dim sVendors(99) As String     Dim iVendorCounts(99) As Integer     Dim iVendors As Integer     Dim rVendorRange As Range     Dim c As Range     Dim J As Integer     Dim bFound As Boolean

' Find last row in the worksheet     Set rVendorRange = ActiveSheet.Range(Selection, _       ActiveSheet.Cells(Selection.SpecialCells(xlCellTypeLastCell).Row, _       Selection.Column))



' Collecting all the vendor names in use     iVendors = 0

For Each c In rVendorRange         bFound = False         sTemp = Trim(c)

If sTemp > "" Then             For J = 1 To iVendors                 If sTemp = sVendors(J) Then bFound = True             Next J             If Not bFound Then                 iVendors = iVendors + 1                 sVendors(iVendors) = sTemp                 iVendorCounts(iVendors) = 0             End If         End If     Next c

' Create worksheets     For J = 1 To iVendors         Worksheets.Add After:=Worksheets(Worksheets.Count)

ActiveSheet.Name = sVendors(J)

Next J

' Start copying information     Application.ScreenUpdating = False     For Each c In rVendorRange         sTemp = Trim(c)

If sTemp > "" Then             For J = 1 To iVendors                 If sTemp = sVendors(J) Then                     iVendorCounts(J) = iVendorCounts(J) + 1                     c.EntireRow.Copy Sheets(sVendors(J)). _                       Cells(iVendorCounts(J), 1)

End If             Next J         End If     Next c     Application.ScreenUpdating = True End Sub

Como se indicó al principio de la macro, debe seleccionar la primera celda de datos en la columna Proveedor antes de ejecutar la macro. Cuando esté completo, tendrá una hoja de trabajo para cada proveedor, que puede formatear e imprimir como desee. (Puede hacer que la macro sea aún más útil agregando código que coloque la información del encabezado de columna u otra información en cada hoja de trabajo creada). Cuando termine, deberá eliminar las hojas de trabajo de esos proveedores para que la próxima vez que ejecute la macro no te encuentras con un problema.

_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 (13633) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.