No se como automatizar combinación correspondencia Excel/Word

Tengo que hacer periódicamente en mi trabajo un proceso con el Word & Excel que es muy penoso y estoy seguro que se podría automatizar de alguna manera, a ver si me podéis ayudar. Paso a explicar detalladamente el proceso que sigo y mi consulta:

Trabajo en el almacén de una fábrica, soy el encargado de embalar las piezas terminadas, cada una por separado y con su etiqueta de identificación. Para cuando me llegan las piezas terminadas las etiquetas ya las tengo impresas y ordenadas. Las hago cuando tengo tiempo ya que es un proceso lento y estoy seguro que se podrían hacer de otra manera más fácil y sobre todo más rápida.

La forma en que actualmente las hago es la siguiente:

1- El Libro1 es una hoja de Excel con una base de datos que nos genera nuestro programa de gestión en el que cada fila es una orden de fabricación (OF) la cual consta de un número determinado de piezas. Selecciono la fila, la copio, voy al Libro2 (Excel), selecciono tantas filas como de piezas conste esa OF y las pego. Vuelvo al Libro1 y repito este proceso con la siguiente fila.

2- Una vez hecho esto con todas las filas deseadas voy al Libro3 (Word), que tengo vinculado con el Libro2, y pincho en la pestaña Correspondencia --> desplegable Finalizar y combinar --> editar documentos individuales --> selecciono Desde: Hasta: --> en el campo Hasta: pongo el número correspondiente a la última fila rellenada del Libro2 --> Aceptar.

Con esto consigo el Libro4 (Word) el cual puedo modificar en caso de necesitarlo y una vez revisado lo imprimo en folios tamaño DIN A4 con etiquetas ya precortadas.

Mi problema es que el paso 1 lo tengo que repetir muchas veces lo cual me lleva muchísimo tiempo y estoy seguro que tiene que haber alguna forma de simplificarlo y hacerlo más rápido. Lo que me gustaría seria poder automatizar este proceso, poderle ordenar al Excel de alguna forma algo así; “de la fila tal a la fila cual del Libro1 genérame tantas filas en el Libro2 como figura en la columna piezas de cada una”.

La versión de Office con la que trabajo es Office 2007.

No sé si he conseguido explicarme, si necesitáis cualquier otro dato o aclaración pedírmela y os lo diré.

1 Respuesta

Respuesta
2

Te ayudo con el punto 1:

1- El Libro1 es una hoja de Excel con una base de datos que nos genera nuestro programa de gestión en el que cada fila es una orden de fabricación (OF) la cual consta de un número determinado de piezas. Selecciono la fila, la copio, voy al Libro2 (Excel), selecciono tantas filas como de piezas conste esa OF y las pego. Vuelvo al Libro1 y repito este proceso con la siguiente fila.

Para eso necesito que me des la siguiente información:

  1. Cómo se llama el libro1
  2. Cómo se llama la hoja con la base de datos del libro1
  3. En cuál fila empiezan las ordenes de fabricación
  4. En cuál columna está el número de piezas
  5. Qué datos quieres copiar del libro1, ¿toda la fila o ciertas columnas?
  6. Cómo se llama el libro2
  7. Cómo se llama la hoja del libro2
  8. En cuál fila del libro2 debo empezar a pegar

E sperto tus comentarios de manera breve y en ese orden.

  1. Cómo se llama el libro1 

PEDIDOS PINWIN.xls

  1. Cómo se llama la hoja con la base de datos del libro1

DOC13

  1. En cuál fila empiezan las ordenes de fabricación

2

  1. En cuál columna está el número de piezas

J

  1. Qué datos quieres copiar del libro1, ¿toda la fila o ciertas columnas?

Solo estas columnas; E, D, B, C, G, F

  1. Cómo se llama el libro2

listado ofs.xls

  1. Cómo se llama la hoja del libro2

Hoja1

  1. En cuál fila del libro2 debo empezar a pegar

2

Te anexo la macro para copiar las filas.

Revisa que los nombres estén correctos

No te pregunta en qué columna destino va cada dato, así que los puse en la A, B, C, D, E y F

Pon la macro en tu libro "PEDIDOS PINWIN"

Antes de ejecutar la macro debes tener abierto también el libro "listado ofs.xls"

Sub Copiar_Filas()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("DOC13")
    Set l2 = Workbooks("listado ofs.xls")
    Set h2 = l2.Sheets("Hoja1")
    col = "J"
    k = 2
    '
    For i = 2 To h1.Range(col & Rows.Count).End(xlUp).Row
        num = h1.Cells(i, col)
        If IsNumeric(num) Then
            For j = 1 To num
                'E, D, B, C, G, F
                h2.Cells(k, "A") = h1.Cells(i, "E")
                h2.Cells(k, "B") = h1.Cells(i, "D")
                h2.Cells(k, "C") = h1.Cells(i, "B")
                h2.Cells(k, "D") = h1.Cells(i, "C")
                h2.Cells(k, "E") = h1.Cells(i, "G")
                h2.Cells(k, "F") = h1.Cells(i, "F")
                k = k + 1
            Next
        End If
    Next
    MsgBox "Filas copiadas"
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel "PEDIDOS PINWIN.xls"
  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”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Copiar_Filas
  10. Aceptar.
  11. 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