Visual Basic para Aplicaciones - Traspaso de datos de tabla excel a tabla word

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Traspaso de datos de tabla excel a tabla word

Publicado por Camila (2 intervenciones) el 11/03/2018 06:25:56
Hola a todos!! Tengo una tabla excel con los datos que se muestran en la foto (los cuales varían sus filas), y programé que se pasaran a un word. El problema es que en el traspaso, los datos pierden su formato de tabla y se insertan únicamente en una celda de la tabla word, lo que hace que se vean muy desordenados (tal como se muestra en la segunda foto). Me gustaría que se pasaran con el mismo formato del excel, es decir, una columna para cada grupo de datos.

De antemano, muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Dim textoActualCelda As String
 
For contador = 11 To Hoja2.Cells.SpecialCells(xlCellTypeLastCell).Row
 
textoActualCelda = textoActualCelda & "" & Chr(13) & Chr(10) & Hoja2.Cells(contador, 2)
 
    datos(1, 5) = textoActualCelda
 
Next contador
 
datos(0, 6) = "[reemp_cont]"
 
Dim textoActualCelda1 As String
 
For contador = 11 To Hoja2.Cells.SpecialCells(xlCellTypeLastCell).Row
 
textoActualCelda1 = textoActualCelda1 & "" & Chr(13) & Chr(10) & Hoja2.Cells(contador, 3)
 
    datos(1, 6) = textoActualCelda1
 
Next contador
 
datos(0, 7) = "[reemp_erroresop]"
 
Dim textoActualCelda2 As String
 
For contador = 11 To Hoja2.Cells.SpecialCells(xlCellTypeLastCell).Row
 
textoActualCelda2 = textoActualCelda2 & "" & Chr(13) & Chr(10) & Hoja2.Cells(contador, 4)
 
    datos(1, 7) = textoActualCelda2
 
Next contador
 
datos(0, 8) = "[reemp_especificación]"
 
Dim textoActualCelda3 As String
 
For contador = 11 To Hoja2.Cells.SpecialCells(xlCellTypeLastCell).Row
 
textoActualCelda3 = textoActualCelda3 & "" & Chr(13) & Chr(10) & Hoja2.Cells(contador, 5)
 
    datos(1, 8) = textoActualCelda3
 
Next contador


DatosTablaExcel
TraspasoWord
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Traspaso de datos de tabla excel a tabla word

Publicado por Antoni Masana (498 intervenciones) el 13/03/2018 11:32:45
Si seleccionas Toda la tabla el Excel de una sola pasada y la pegas en el Word la tendrás como tabla y con mejor formato.
Te envío un ejemplo con un simple tabla com un copy-paste y despues arreglarla un poco la tabla pegada.
Has dos hoja, la primera es muy parecido a lo que quieres conseguir y la segunda es exactamente lo mismo con las líneas de la tabla.
Otra posibilidad es convertir la tabla texto y ver si el resultado te sirve y si te sirve aplicarlo al copiar.

Una observación personal: por mi experiencia las macros de Excel no conjugan bien con Word y las Macros de Word no conjugan bien con Excel.
¿Que quiero decir con esto? que lo que puedes hacer con una macro de Word en Word no lo puedes hacer con una macro de Excel en Word.
Las cosas se complican un poco.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 5 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Traspaso de datos de tabla excel a tabla word

Publicado por Sergiometz (2 intervenciones) el 13/03/2018 12:12:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub tablaaword()
patharch = ThisWorkbook.Path & "\documentoword.doc"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
 
Hoja1.Range("A1:D6").Select
Selection.Copy
 
textobuscar = "tabladeexcel"
 
objWord.Selection.Move 6, -1 'moverse al principio del documento
objWord.Selection.Find.Execute FindText:=textobuscar
 
While objWord.Selection.Find.found = True 'reemplaza el texto, y busca si hay otro para reemplazarlo
 
objWord.Selection.PasteExcelTable False, True, False
 
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
 
objWord.Activate
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar