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

Life is soft - evento anual de software empresarial
   
Vista:

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

Traspaso de datos de tabla excel a tabla word

Publicado por Antoni Masana (175 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

Traspaso de datos de tabla excel a tabla word

Publicado por Sergiometz Sergiometz90@gmail.com (1 intervención) 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
Revisar política de publicidad