Macro para imprimir folios en correlativos

Recurro a sus valiosa ayuda para una idea de una macro.

Tengo una base de datos llamada ruteo donde, esta mi lista de clientes que voy a imprimirles guías (Folios) en una plantilla de 3 en 3 en hoja margen A4.

Luego que tengo esa data llena, me voy a mi hoja guías.

La he puesto colores para identificarla.

Toda la hoja tengo amarrada a una formula de búsqueda y referencia, para que a la hora de poner el DNI que copio de la hoja Ruteos, a la Hoja Guías en las celdas F aparezcan los datos extraídos de la hoja ruteos y lanzar impresión la primera impresión.

Lanza de tres guías en una sola hoja sin salirse de los margenes A4.

El tema es el siguiente, que debo repetir el proceso, por cada guia. Es decir copiando y pegando los DNI que corresponden a los demas folios correlativos, hay ocasiones que tengo que imprimir mas de 50 guías.

La consulta es si una macro puede realizar este proceso:

  • Vaya imprimiendo de acuerdo correlativo de las guías.
  • El DNI siempre va asociado a una guia.
  • Luego de imprimir por ejemplo la guías 040-1236 - 040-1237 - 040-1238
  • Imprima las siguientes 3, así sucesivamente, teniendo en cuenta que el DNI sale hoja Ruteo y siempre va asociado a una guía, esa es la condición..
  • No salirse del margen de la hoja A4
  • Hay ocasiones en que el archivo como imprimo de 3 en 3, no me da el múltiplo de 3, el saldo puede ser de 1 o 2 guías para finalizar la impresión.

Espero me haya dejado entender y pueda ser viable.

Quedo atento a cualquier acotación.

1 respuesta

Respuesta
2

No me quedaron claros algunos detalles:

- Si solo debe imprimir las guías marcadas en la 1er imagen. Es decir que de algún modo Excel debe saber cuáles tomar.

- Dónde se guarda el último nro como para continuar la numeración.

- Si el recorrido se hace por col DNI, entiendo que ese número se vuelca en F9 de hoja Guía y el resto va con fórmulas... confirma por favor.

Lo ideal sería que me envíes tu libro para no tener que armar hojas modelo sino trabajar directamente con tus datos. Mis correos aparecen en mi sitio.

Estimada Elsa:

Te envié mi archivo original, ya que el otro era con datos ficticios para explicar la idea.

Allí el DNI cae en las celdas "I..."

Macro para imprimir folios consecutivos

Te adjunto mi archivo original, para que se entienda mejor la idea.

Primer paso:

Arme mi archivo en la hoja "Regar Ruteo" como lo tengo amarrado a fórmulas me jala todos los datos (DNI y Teléfono)

Segundo paso:

  • Con los DNI copio el primero que comienza en la celda I2 de la hoja "Regar Ruteo"
  • Hago un pegado especial en la hoja "SERVIENTREGA" celda I8, luego el segundo DNI de I3 lo pego en la celda I25, el ultimo I43, lo demás aparece por que esta con fórmula de búsqueda y referencia.
  • Al tener mis 3 plantillas llenas, lanzo la primera impresión, luego de eso debo repetir el proceso para imprimir 3 plantillas más y así sucesivamente hasta terminar con mi archivo de "Pegar Ruteo"

EL DNI es la clave, va asociado a una entrega celda C2 hacia abajo. Asimismo, a una guía celda L2 hacia abajo

Imprimo de 3 plantillas por que son guías pequeñas y 3 entran en los bordes hoja A4

Al final mi archivo no siempre me quedan 3 DNI para lanzar impresión el saldo a veces me da para imprimir o una guía o dos, pero no más de 3.

Adjunto macro solicitada. Por mail te estoy devolviendo libro con muestra de cómo se imprime la hoja con menos de 3 guías.

Sub imprimeXtres()
'x Elsamatilde
Set hos = Sheets("SERVIENTREGA")
'se trabaja desde hoja ruteo a partir de fila 2, hasta encontrar fila vacía
Sheets("Pegar Ruteo").Select
[A2].Select
cant = 0
finx = Range("A" & Rows.Count).End(xlUp).Row
While ActiveCell.Value <> ""
    x = ActiveCell.Row
    hos.Range("I8") = Range("I" & x): cant = 1
    If Range("A" & x + 1) <> "" Then
        hos.Range("I25") = Range("I" & x + 1): cant = 2
        If Range("A" & x + 2) <> "" Then
            hos.Range("I43") = Range("I" & x + 2): cant = 3
        Else
            'deja el DNI vacío
            hos.Range("I43") = ""
        End If
    Else
        'deja el DNI vacío
        hos.Range("I25") = ""
    End If
    'se imprime, ocultando los rangos no utilizados
    If cant = 2 Then
        hos.Rows("36:51").Hidden = True
    ElseIf cant = 1 Then
         hos.Rows("19:35").Hidden = True
    End If
    hos.PrintOut
    'se pasan 3 filas hacia abajo y repite el bucle
    ActiveCell.Offset(3, 0).Select
Wend
'vuelve a mostrar las posibles filas ocultas
hos.Rows("19:51").Hidden = False
MsgBox "Fin del proceso."
End Sub

Las filas no coinciden con la imagen sino con la muestra de tu libro.

Sdos!

Estimada Elsa:

La Macro si esta al 95% de la Idea, pero como te comente el DNI va amarrado a la entrega, hay casos como mi libro de ejemplo que el DNI se repite varias veces por que son varios códigos y lo une una sola entrega, debería salir en una sola guía, la macro lo esta separando en impresión por separado.

Te adjunto una imagen por lo explicado, esos casos siempre tengo en mi archivo

No me dejaste muestra de la hoja impresión cuando tiene más de un registro, por eso asumí que cada registro va en otro rango, como lo mencionabas:

  • El DNI siempre va asociado a una guía

Enviame imagen de un rango de impresión con 1 DNI repetido.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas