MACRO PARA RELLENAR WORD DESDE TABLA EXCEL

lbarreiro 1 Publicaciones martes, 9 de enero de 2018Fecha de inscripción martes, 9 de enero de 2018 Última intervención - 9 ene 2018 a las 10:40
Hola, necesitaría ayuda para una macro. Decir que no suelo trabajar con macros, pero es la única solución que he encontrado para esta tarea.

Dispongo de una tabla Excel con la lista de empleados por filas, y en columnas conceptos para cada empleado. No todos los empleados tienen los mismos conceptos. Mi macro en Excel lo que hace es seleccionar un empleado y se activa un Word en el que se rellena una ficha con los datos para cada empleado. El problema, que en el Word están todos los conceptos que pueden tener los empleados en una tabla. Cuando hay un empleado que no tiene algún concepto quedan filas en blanco en esa tabla de Word y no consigo crear la macro para eliminarlas. He encontrado alguna solución en internet pero no me funciona.

A continuación dejo la macro que consigue rellenar la tabla, a ver si alguien puede ayudarme.. Gracias.

Sub Macro1()

'Ubicación y nombre de la plantilla
wArch = Hoja2.Range("C3").Text & Hoja2.Range("C2").Text & ".dotx"

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=wArch, NewTemplate:=False, DocumentType:=0

For i = 1 To Hoja2.Range("c1").Value 'celda donde está la cuenta

datos = Hoja2.Range("B" & i).Text ' donde están los datos
reemp = Hoja2.Range("A" & i).Text ' donde están las etiquetas

'utilizamos buscar y rremplazar de word
With objWord.Selection.Find
.Text = datos 'busca el texto de datos
.Replacement.Text = reemp 'reemplaza or el texto
.Execute Replace:=2 ' la variable en dos es para reemplazar todos los valores
End With

Next i

objWord.Activate

End Sub



Para luego eliminar las filas vacías de la tabla he encontrado esta solución en internet, pero no consigo integrarla bien en la macro anterior para que funcione.

Sub Macro6()
'
' Macro6 Macro
' Macro grabada el 30/07/2009 por jagchuchi
'
Dim fila As Row

' hacemos un recorrido por todas las filas del documento
For Each fila In ActiveDocument.Tables(1).Rows
' Seleccionamos el texto de la primera celda de la fila
With fila.Cells(1).Range
.MoveEnd Unit:=wdCharacter, Count:=-1
' Si la celda esta vacía borramos la fila
If .Text = "" Then
fila.Delete
End If
End With
Next fila


End Sub
Ver más