Impresión de hojas de trabajo individuales para proveedores (Microsoft Excel)
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:
-
Muestre la pestaña Datos de la cinta.
-
En el grupo Esquema, haga clic en la herramienta Subtotal. Excel muestra el cuadro de diálogo Subtotal. (Ver figura 1)
-
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.
-
La lista desplegable Usar función debe establecerse en Recuento.
-
Usando la lista en el cuadro Agregar subtotal a, seleccione la columna Proveedor (columna C). Aquí es donde se agregará el recuento.
-
Asegúrese de que la casilla de verificación Reemplazar subtotales actuales esté seleccionada.
-
Asegúrese de que la casilla de verificación Saltos de página entre grupos esté seleccionada.
-
Asegúrese de que la casilla de verificación Resumen debajo de los datos esté seleccionada.
-
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:
-
Muestre la pestaña Datos de la cinta.
-
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.
-
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.
-
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)
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.)
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.