Macro para crear hojas a partir de una lista desplegable

Tengo lo siguiente: Es un archivo con el cual deseo manejar los pedidos de una tienda con muchas sucursales, el archivo funciona de la siguiente manera: en una celda la cual contiene una lista desplegable ( realizada a partir de validación de datos ), selecciono la tienda y automáticamente la hoja ya me trae el pedido y solo faltaría imprimir, lo que deseo es generar una macro que seleccione cada valor de la lista desplegable y genere una hoja, esto con el fin de tener una página por cada sucursal y que solo sea imprimir, ya que en el momento son alrededor de 50 tiendas y es muy tedioso ir seleccionando manualmente cada valor de la lista desplegable e imprimir.

Respuesta

.29/08/16

Buenas, César

Esta es la rutina que, con informarle un par de datos, hará lo que pides.

Accede al Editor de VBA (Atajo: Alt + F11), inserta un módulo - si no tuvieras uno ya- y pega el siguiente código:

Sub PrnTiendas()
'
'by FeJoAl
' César, modifica los datos de estas variables para que se ejecute la rutina correctamente:
Cd_Linea = "D1" 'Celda donde se selecciona la tienda a imprimir
ListaTien = "L_SelTienda" 'rango que usas para la lista de validación
Copias = 1 'cantidad de copias a imprimir
Application.StatusBar = ">>>>>>>>>>>>>> Un momento, imprimiendo hojas"
Application.ScreenUpdating = False
For LineaAc = 1 To Range(ListaTien).Rows.Count
    Range(Cd_Linea).Value = Range(ListaTien).Cells(LineaAc).Value
                    ActiveSheet.Calculate
                    ActiveWindow.SelectedSheets.PrintOut Copies:=Copias, Collate:=True, IgnorePrintAreas:=False
                    cont = cont + 1
Next LineaAc
Application.StatusBar = False
Range(Cd_Linea).Value = Range(ListaTien).Cells(1).Value
ActiveSheet.Calculate
    ElMensaje = "Fueron impresas " & cont & " hojas de tiendas"
    MsgBox ElMensaje, vbInformation, "TERMINADO!"
End Sub

Asumí que la lista de tiendas las tienes en un rango con un nombre definido: "L_SelTienda" y que tal selección la realizas en la celda D1, pero estos son los valores que debes reemplazar por los reales de tu archivo.

Luego puedes agregar un botón de ejecución de esta macro insertando uno en tu hoja. Luego, haz click derecho sobre él y eligiendo "Asignar macro". La lista de macros disponibles te permitirá asignación PrnTiendas a ese botón. Finalmente, en propiedades, podrás quitarle la marca para que el botón no se imprima.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas