.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.