Excel - Pegar en word como imagen

 
Vista:

Pegar en word como imagen

Publicado por Carlos (5 intervenciones) el 16/01/2018 11:33:44
Buenos días. Tengo el siguiente problema.

Tengo una rutina para crear un documento de word (plantilla) a partir de los datos de una hoja excel, y tengo otra que pega un rango de celdas como una imagen en un documento de word.
Lo que no consigo es hacer que la macro que pega el rango de celdas como una imagen lo haga dentro de la plantilla de word que utilizo en la primara macro. Es decir, necesito una macro que rellena una plantilla de word con datos de una hoja excel y al final del documento de word me pegue como una imagen un rango de celdas del mismo archivo excel (pero distinta hoja).

Muchas gracias, a ver si tengo suerte y lo puedo resolver

Un saludo
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Pegar en word como imagen

Publicado por Andres Leonardo (1583 intervenciones) el 16/01/2018 14:58:55
Graba la macro ....

Haz lo que haces normalmente y luego haz pegar como imagen

te recomiendo
para cambiar de hojas utilices

sheets("Hoja2").select

asi cambis de hoja y puedes seleccionar el rango que es la imagen

crea una variable aplicacion word la cual te permite usar todas las caracteristicas de word-.-.---si no sabes como hacer el pegar .. graba la macro en word y ese codigo llevalo a excel referenciando al la variable de word.

ObjWORD.losquesea.paste

Espero haberte dado una idea.
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

Pegar en word como imagen

Publicado por Carlos (5 intervenciones) el 19/01/2018 10:47:30
No soy capaz. Dejo los códigos de las macros a ver si alguien me ayuda. Lo que necesito es que la segunda macro se ejecute dentro de la primera, es decir, que pegue las celdas como imagen dentro de la plantilla de word que utiliza la primera macro.

Para la macro que sustituye valores en la plantilla word.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub Informe_ABA_Ejecutada()
Application.ScreenUpdating = False
Dim datos(0 To 1, 0 To 15) As String '(columna,fila)
 
patharch = Hoja4.Range("D6").Text & Hoja4.Range("D3").Text & ".dot"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
 
Set PegarImg = CreateObject("Word.Application") 'BORRAR ESTO??
 
 
datos(0, 0) = "[cod_ing]"
datos(1, 0) = Hoja4.Cells(1, 2) 'datos(columna,fila) = Hoja1.cells(fila,columna)
datos(0, 1) = "[num_exp]"
datos(1, 1) = Hoja4.Cells(2, 2)
datos(0, 2) = "[solicitante]"
datos(1, 2) = Hoja4.Cells(3, 2)
datos(0, 3) = "[sit_obra]"
datos(1, 3) = Hoja4.Cells(4, 2)
datos(0, 4) = "[fecha]"
datos(1, 4) = Hoja4.Cells(5, 2)
datos(0, 5) = "[tasa]"
datos(1, 5) = Hoja4.Cells(6, 2)
datos(0, 6) = "[garantia]"
datos(1, 6) = Hoja4.Cells(7, 2)
datos(0, 7) = "[ejecutada]"
datos(1, 7) = Hoja4.Cells(8, 2)
datos(0, 8) = "[tipo_aco]"
datos(1, 8) = Hoja4.Cells(9, 2)
datos(0, 9) = "[aba_san]"
datos(1, 9) = Hoja4.Cells(10, 2)
datos(0, 10) = "[tipo_obra]"
datos(1, 10) = Hoja4.Cells(11, 2)
datos(0, 11) = "[tipo_pav]"
datos(1, 11) = Hoja4.Cells(12, 2)
datos(0, 12) = "[largo]"
datos(1, 12) = Hoja4.Cells(13, 2)
datos(0, 13) = "[ancho]"
datos(1, 13) = Hoja4.Cells(14, 2)
datos(0, 14) = "[NOMBRE_ARCHIVO]"
datos(1, 14) = Hoja4.Cells(15, 2)
 
 
For i = 0 To UBound(datos, 2)
 
textobuscar = datos(0, i)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
 
While objWord.Selection.Find.found = True
objWord.Selection.Text = datos(1, i) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
 
Next i
objWord.Activate
End Sub




Y para la macro que pega la selección de celdas como una imagen en word.
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
Sub Pegar_imagen_word()
 
 
    Dim w As Object
    Dim doc As Object
    Dim tabla As Object
 
 
    'Selection.Copy
   Range("A3:K38").Select
   Selection.CopyPicture xlScreen, xlPicture
 
    Set w = CreateObject("Word.Application")
    w.Visible = True
    Set doc = w.Documents.Add
    Set tabla = doc.Tables.Add(doc.Range, 1, 1)
 
    tabla.cell(1, 1).Range.Paste 'ExcelTable True, True, True
 
    Set tabla = Nothing
    Set doc = Nothing
    Set w = Nothing
 
Sheets(1).Select 'va a la 2ª hoja
Range("C6").Select ' se posiciona en la celda A1
 
End Sub


A ver si alguien puede ayudarme
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
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Pegar en word como imagen

Publicado por Andres Leonardo (1583 intervenciones) el 19/01/2018 14:52:08
Pon esta linea dentro

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Sub Informe_ABA_Ejecutada()
Application.ScreenUpdating = False
Dim datos(0 To 1, 0 To 15) As String '(columna,fila)
Dim w As Object
Dim doc As Object
Dim tabla As Object
 
 
patharch = Hoja4.Range("D6").Text & Hoja4.Range("D3").Text & ".dot"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
 
Set PegarImg = CreateObject("Word.Application") 'BORRAR ESTO??
 
 
datos(0, 0) = "[cod_ing]"
datos(1, 0) = Hoja4.Cells(1, 2) 'datos(columna,fila) = Hoja1.cells(fila,columna)
datos(0, 1) = "[num_exp]"
datos(1, 1) = Hoja4.Cells(2, 2)
datos(0, 2) = "[solicitante]"
datos(1, 2) = Hoja4.Cells(3, 2)
datos(0, 3) = "[sit_obra]"
datos(1, 3) = Hoja4.Cells(4, 2)
datos(0, 4) = "[fecha]"
datos(1, 4) = Hoja4.Cells(5, 2)
datos(0, 5) = "[tasa]"
datos(1, 5) = Hoja4.Cells(6, 2)
datos(0, 6) = "[garantia]"
datos(1, 6) = Hoja4.Cells(7, 2)
datos(0, 7) = "[ejecutada]"
datos(1, 7) = Hoja4.Cells(8, 2)
datos(0, 8) = "[tipo_aco]"
datos(1, 8) = Hoja4.Cells(9, 2)
datos(0, 9) = "[aba_san]"
datos(1, 9) = Hoja4.Cells(10, 2)
datos(0, 10) = "[tipo_obra]"
datos(1, 10) = Hoja4.Cells(11, 2)
datos(0, 11) = "[tipo_pav]"
datos(1, 11) = Hoja4.Cells(12, 2)
datos(0, 12) = "[largo]"
datos(1, 12) = Hoja4.Cells(13, 2)
datos(0, 13) = "[ancho]"
datos(1, 13) = Hoja4.Cells(14, 2)
datos(0, 14) = "[NOMBRE_ARCHIVO]"
datos(1, 14) = Hoja4.Cells(15, 2)
 
 
For i = 0 To UBound(datos, 2)
 
textobuscar = datos(0, i)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
 
While objWord.Selection.Find.found = True
objWord.Selection.Text = datos(1, i) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
 
Next i
 
'Aqui donde inicia deberias colocar la hoja donde esta la imagen
Sheet("Nombre").SELECT
Range("A3:K38").Select
Selection.CopyPicture xlScreen, xlPicture
 
Set w = CreateObject("Word.Application")
w.Visible = True
Set doc = w.Documents.Add
Set tabla = doc.Tables.Add(doc.Range, 1, 1)
 
tabla.cell(1, 1).Range.Paste 'ExcelTable True, True, True
 
Set tabla = Nothing
Set doc = Nothing
Set w = Nothing
 
Sheets(1).Select 'va a la 2ª hoja
Range("C6").Select ' se posiciona en la celda A1
 
 
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

Pegar en word como imagen

Publicado por Carlos (5 intervenciones) el 23/01/2018 09:36:10
De la forma que me indicas ya lo había hecho y no me vale, me abre 2 documentos de word, uno para el informe y otro para la imagen, yo pretendo que esa imagen la pegue al final del informe, en el mismo documento de word. Gracias
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

Pegar en word como imagen

Publicado por Carlos (5 intervenciones) el 24/01/2018 09:18:22
Perdona, pero no entiendo lo que quieres decir. ¿Puedes pegar todo el código tal y como debiera quedar?. Gracias
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
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Pegar en word como imagen

Publicado por Andres Leonardo (1583 intervenciones) el 24/01/2018 14:45:46
mmm....

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Sub Informe_ABA_Ejecutada()
Application.ScreenUpdating = False
Dim datos(0 To 1, 0 To 15) As String '(columna,fila)
Dim w As Object
Dim doc As Object
Dim tabla As Object
 
 
patharch = Hoja4.Range("D6").Text & Hoja4.Range("D3").Text & ".dot"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
 
Set PegarImg = CreateObject("Word.Application") 'BORRAR ESTO??
 
 
datos(0, 0) = "[cod_ing]"
datos(1, 0) = Hoja4.Cells(1, 2) 'datos(columna,fila) = Hoja1.cells(fila,columna)
datos(0, 1) = "[num_exp]"
datos(1, 1) = Hoja4.Cells(2, 2)
datos(0, 2) = "[solicitante]"
datos(1, 2) = Hoja4.Cells(3, 2)
datos(0, 3) = "[sit_obra]"
datos(1, 3) = Hoja4.Cells(4, 2)
datos(0, 4) = "[fecha]"
datos(1, 4) = Hoja4.Cells(5, 2)
datos(0, 5) = "[tasa]"
datos(1, 5) = Hoja4.Cells(6, 2)
datos(0, 6) = "[garantia]"
datos(1, 6) = Hoja4.Cells(7, 2)
datos(0, 7) = "[ejecutada]"
datos(1, 7) = Hoja4.Cells(8, 2)
datos(0, 8) = "[tipo_aco]"
datos(1, 8) = Hoja4.Cells(9, 2)
datos(0, 9) = "[aba_san]"
datos(1, 9) = Hoja4.Cells(10, 2)
datos(0, 10) = "[tipo_obra]"
datos(1, 10) = Hoja4.Cells(11, 2)
datos(0, 11) = "[tipo_pav]"
datos(1, 11) = Hoja4.Cells(12, 2)
datos(0, 12) = "[largo]"
datos(1, 12) = Hoja4.Cells(13, 2)
datos(0, 13) = "[ancho]"
datos(1, 13) = Hoja4.Cells(14, 2)
datos(0, 14) = "[NOMBRE_ARCHIVO]"
datos(1, 14) = Hoja4.Cells(15, 2)
 
 
For i = 0 To UBound(datos, 2)
 
textobuscar = datos(0, i)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
 
While objWord.Selection.Find.found = True
objWord.Selection.Text = datos(1, i) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
 
Next i
 
'Aqui donde inicia deberias colocar la hoja donde esta la imagen
Sheet("Nombre").SELECT
Range("A3:K38").Select
Selection.CopyPicture xlScreen, xlPicture
 
Set w = CreateObject("Word.Application")
w.Visible = True
'Set doc = w.Documents.Add  ' esto es comentar la hoja que sea comentario que no sea considerada
Set tabla = doc.Tables.Add(doc.Range, 1, 1)
 
tabla.cell(1, 1).Range.Paste 'ExcelTable True, True, True
 
Set tabla = Nothing
Set doc = Nothing
Set w = Nothing
 
Sheets(1).Select 'va a la 2ª hoja
Range("C6").Select ' se posiciona en la celda A1
 
 
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

Pegar en word como imagen

Publicado por Carlos (5 intervenciones) el 24/01/2018 16:05:18
:-( No funciona. Abre dos archivos de word, pero en el primero no pega la imagen y en el segundo no hace nada.
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