Macro para imprimir recurrente en Excel después de Buscarv

Tengo que imprimir 1.000 etiquetas diarias y cada etiqueta es diferente, cambian los datos del cliente direcciones y cantidades, he logrado amarrar todos los datos a una base con Buscarv de Excel pero para imprimir debo imprimir uno a uno las etiquetas, me gustaría me ayuden con un macro que permita buscar de cambiar el código del cliente para que el BuscarV tome la siguiente línea e imprima automáticamente hasta que se acaben las filas.

¿Es posible eso?

2 respuestas

Respuesta
1

.10.04.17

Buenas tardes, Jesús

Estás cerca de la solución:

A tu base de datos de clientes a imprimir asígnale un número de orden secuencial a la izquierda

Luego haz un simple buscarv de ese número de orden a imprimir y este traerá el código conque traes el resto de los datos.

Esto, además te permitirá elegir desde qué cliente a cual otro imprimir las etiquetes dandote mayor control sobre las impresiones.

Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:

Sub PrintEtiq()
'---- Variables modificables ----
'=== JESUS, modifica estos datos de acuerdo a tu proyecto:
HojaEtiq = "Etiquetas" 'hoja a imprimir
HojaDatos = "Datos Impresión" 'hoja donde tienes los datos de los clientes que deberán imprimirse
CeldaClie = "C4" 'Celda donde indicas qué nro de orden corresponde al cliente a imprimir
ClieIni = "B1" 'celda donde inicar el orden del primer cliente a imprimir
ClieFin = "C1" 'celda donde inicar el orden del último cliente a imprimir
'---- fin Variables
'
' VBA coding by FeJoAl
'
'---- inicio de rutina:
'  
With Sheets(HojaDatos)
ClieIni = .Range(ClieIni).Value
ClieFin = .Range(ClieFin).Value
    For ELCliente = ClieIni To ClieFin
        .Range(CeldaClie).Value = ELCliente
        Sheets(HojaEtiq).Calculate
        Sheets(HojaEtiq).PrintOut Copies:=1, Collate:=True
    Next
End With
End Sub

Al inicio del código, verás unas variables que te permite adaptar la rutina a las direcciones propias de tu archivo.

.

Respuesta
1

Te anexo la macro suponiendo que tus clientes están en la hoja "clientes" y en la columna A tienes los códigos de cliente, más o menos de esta forma:

Ahora, en la hoja etiquetas (hoja para imprimir), en la celda "D2" pones el código de cliente


Actualiza tus datos en la macro, en estas líneas:

    Set h1 = Sheets("etiquetas")    'hoja a imprimir de etiquetas
    Set h2 = Sheets("clientes")     'hoja de cientes
    cod = "D2"                      'celda donde pones el código de clientes

La macro completa:

Sub Imprimir_Etiquetas()
'Por.Dante Amor
    Set h1 = Sheets("etiquetas")    'hoja a imprimir de etiquetas
    Set h2 = Sheets("clientes")     'hoja de cientes
    cod = "D2"                      'celda donde pones el código de clientes
    '
    For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
        h1.Range(cod) = h2.Cells(i, "A")
        h1.PrintOut
    Next
    MsgBox "Etiquetas impresas : " & i - 2, vbInformation, "   IMPRIMIR ETIQUETAS   "
End Sub

Sigue las Instrucciones para poner un botón en la hoja "etiquetas" y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
    1. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Imprimir_Etiquetas
  9. Aceptar.
  10. Para ejecutarla dale click a la imagen.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas