Visual Basic para Aplicaciones - Exportar datos de Excel a Word

Life is soft - evento anual de software empresarial
   
Vista:

Exportar datos de Excel a Word

Publicado por Pablo (29 intervenciones) el 29/09/2013 14:46:48
Estoy intentando normalizar el formato de las ofertas del departamento.

Los comerciales generan las ofertas en Excel porque les es mas cómodo hacer allí los cálculos, pero a la hora de presentarlo al cliente cada uno lo formatea como Dios le da a entender.

He estado buscando información para migrar los datos (solo los datos) de Excel a una plantilla en Word y bueno, los datos se migran, pero con el formato que "le parece bien".

Yo uso este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub generar_oferta()
'Variables
Dim generarOferta As New Word.Application
Dim oferta As Document
 
Set oferta = generarOferta.Documents.Add(ThisWorkbook.Path & "\plantillaOferta.dot")
 
Sheets("Hoja1").Range("A1:B5").Copy
 
generarOferta.Selection.GoTo what:=wdGoToBookmark, Name:="datos_cliente"
generarOferta.Selection.Paste
 
generarOferta.Visible = True
Set aplicword = Nothing
Set plantillaword = Nothing
 
 
End Sub

Y funciona, lo único "malo" es que una vez pegados los datos no puedo modificar su aspecto y este no es el deseado.

¿Cómo puedo informarle a Word que me pegue los datos con estilo?.

Es que tampoco sé si el estilo que aplica es el que tiene por defecto la plantilla, porque como no me lo deja cambiar...
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

Exportar datos de Excel a Word

Publicado por Antoni Masana (47 intervenciones) el 01/10/2013 10:49:08
Te cuento dos soluciones alternativas.

Solución 1

Crear la MACRO en la PlantillaOferta.dot que exporte los datos de la hoja EXCEL del el formato que se desee y grabe el Documento.

Solucion 2

La MACRO graba los datos en una hoja Plantilla Oferta que ya tendra el diseño deseado.
Tambien se puede hacer que la MACRO cree la hoja Plantilla Oferta y la guarde en el mismo libro, en otro que ya exista o en uno nuevo.

Esto resuelve el problema, aunque crea otros de nuevos.

También es verdad que cada caso es unico y no hay una solución para todo, pero si hay varias soluciones para un mismo problema.

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

Exportar datos de Excel a Word

Publicado por Pablo (29 intervenciones) el 03/10/2013 13:47:23
Muchas gracias por tu tiempo Antoni.

Mi problema principal son mis usuarios. Yo no soy ni experto programador, ni creo que sería capaz de hacer una aplicación para otros.

Al final he hecho lo siguiente:

Los usuarios rellenan un formulario al abrir un archivo excel con los datos de la oferta: Número, Nombre del cliente, NIF, producto ofertado..., etc.
Pulsan OK y les dirige a una tabla dónde irán anotando los productos y su importe.
La tabla debería ser siempre del mismo tamaño, pero en previsión de que alguno quiera añadir filas, le he dado el valor EOF_cuadro a la celda del extremo inferior derecho.
Bien, una vez rellenada la tabla con los componentes de la oferta, pulsan un botón y
Calculo el tamaño de la tabla, la copio y la envío como imagen a una plantilla word.
La plantilla word es una hoja en blanco con el encabezado y pie de página del papel corporativo.
Esto les permite imprimir el documento como un pdf y enviárselo a un cliente por email.
Si el "usuario" en lugar de pasar a pdf el documento, se lo envía al cliente en word, al menos no es modificable por el cliente que la recibe.

El código es este (seguro que es mejorable):
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
Option Explicit
Sub generar_oferta()
 
Dim nuevaOferta As New Word.Application
Dim plantillaOferta As Document
Dim ws As Worksheet
Dim Direccion As String
Dim cuadro As String
 
 
Set plantillaOferta = nuevaOferta.Documents.Add(ThisWorkbook.Path & "\plantillaOferta.dot")
 
Set ws = ThisWorkbook.Sheets("Hoja1")
 
Cells.Find(What:="EOF_cuadro", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
 
    Direccion = ActiveCell.Address(0, 0)
 
    cuadro = "A1:" & Direccion
    MsgBox cuadro
 
ws.Range(cuadro).CopyPicture xlPrinter
 
With nuevaOferta
    .Selection.GoTo What:=wdGoToBookmark, Name:="cuadro_oferta"
    .Selection.PasteAndFormat Type:=wdChartPicture
    .Visible = True
End With
 
Set nuevaOferta = Nothing
Set plantillaOferta = Nothing
 
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
Imágen de perfil de RICARDO JOSÉ

Exportar datos de Excel a Word

Publicado por RICARDO JOSÉ rjrp1944@hotmail.com (14 intervenciones) el 04/10/2013 13:26:43
Hola Pablo.

Hay una forma mas facil de hacer lo que tu necesitas. Utiliza CORRESPONDENCIA en Word 2013 o CORRESPONDENCIA COMBINADA en otras versiones.

Generas una hoja en Excel donde estan todas las variables a utilizar (por filas), por ejemplo: Nombre del cliente, Dirección, Fecha, Texto (hasta 255 caracteres) Texto2, Nombre Remitente, etc.

Llamas el Word y vas a correspondencia. te sale un menú que te permite definir el archivo de entrada de datos en Excel y otros parámetros.

Realizas tu plantila y vas poniendo en cada posición de tu carta las variables de Excel.

Puedes escribir una carta o varia cartas de una vez, según el contenido del archivo en Excel.

Tengo un tutorial pero en Word 2003, pero es casi la misma cosa, y tiene como formatear cada una de las variables: Números, Moneda, Fechas, etc.

Si lo necesitas, escribeme un correo

Espero te sea de utilidad.

Ricardo
Caracas. Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Exportar datos de Excel a Word

Publicado por Pablo (29 intervenciones) el 04/10/2013 14:05:14
Gracias Ricardo.
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

Exportar datos de Excel a Word

Publicado por fpr (1 intervención) el 19/12/2014 11:59:48
Hola Don Ricardo;

buscando en la red el tema de importar desde Word valores en celdas de Excell dí con este foro.

He leido lo anterior y tengo una pregunta:

Con CORRESPONDENCIA efectivamente puedo vincular valores de excella una plantilla Word. Pero ¿Cómo se haria para grabar el Word con los valores definitivos (ya no vinculados, pues son definitivos)?

Por ejemplo, tengo un archivo Excell con nombre y apellidos de personas.
¿Cómo podria guardar mi plantilla Word con un nombre concreto del excell?

Expero haberme explicado bien.

Un saludo y 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

Exportar datos de Excel a Word

Publicado por tresy tresyuna@gmail.com (31 intervenciones) el 24/12/2014 19:45:17
La solución de Ricardo es la mejor, según creo para garantizar el formato o estilo que se desea dar. Para guardar el Word con los valores definitivos, una de las opciones de Correspondencia (o Combinar Correspondencia), es crear documentos individuales. Esta opción hace que la combinación se realice, pero desvinculada ya de los datos de Excel.
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

Exportar datos de Excel a Word

Publicado por rossy (1 intervención) el 11/09/2015 17:39:11
escribo una carta para varias personas y los datos los tengo en exel 2003
como puedo hacer para exportar los datos como: nombre direccion dni a word 2003

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 JULIO REZA

Exportar datos de Excel a Word una lista de registros

Publicado por JULIO REZA (1 intervención) el 20/11/2016 08:08:10
Estimado Ricardo, el organizar una base de datos por correspondencia es muy util, pero lo que necesito saber es como debo programar para hacer un listado de registros con macros en excel para word; por Ejmplo.
1. xxxxxxxxxxxxxxxxxxxx, identificado con DNI Nº xxxxxxxxxxxxxxxx, con Domicilio Real en Jr. Augusto Soriano Infante N° 1061, de la Provincia de Huaraz.
2. xxxxxxxxxxxxxxxxxxxx, identificado con DNI Nº xxxxxxxxxxxxxxxx, con Domicilio Real en Barrio Soledad Alta Mz. 18 Lt. 09, de la Provincia de Huaraz.
3. xxxxxxxxxxxxxxxxxxxx, identificado con DNI Nº xxxxxxxxxxxxxxxx, con Domicilio Real en Jr. Ricardo Palma Mz. B Lt. 01 Pedregal Alto, de la Huaraz.
4. xxxxxxxxxxxxxxxxxxxx, identificado con DNI Nº xxxxxxxxxxxxxxxx, con Domicilio Real en Jr. Carhuaz N° 201, de la Provincia de Huaraz.
5. xxxxxxxxxxxxxxxxxxxx, identificado con DNI Nº xxxxxxxxxxxxxxxx, con Domicilio Real en Jr. Augusto Soriano Infante N° 1084, de la Provincia de Huaraz.

y que de la base de datos de excel esta debe organzarse:
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