Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/07/2009, 12:55
meme_cabo
 
Fecha de Ingreso: febrero-2008
Mensajes: 33
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Pasar datos de Excel a Word

Primeramente agradecer a alfcm por su respuesta. Ya que cuando uno tiene una duda sobre algo entre mas ideas te den, es mas facil salir de eso.

Bueno, agregue algunas cosas al codigo anterior (quedo casi igual) para que funcione para 5 conceptos y sus respectivos importes (precios). Ya que para trabajar con conceptos que puedan variar (ya sean 5, 6 o mas) que se definen en el archivo de Excel realmente no me quedo claro.

Dim wdApp As Word.Application
Dim wdDoc As Word.Document

concepto1 = Range("A2").Value
concepto2 = Range("A3").Value
concepto3 = Range("A4").Value
concepto4 = Range("A5").Value
concepto5 = Range("A6").Value
importe1 = "$" & Range("B2").Value
importe2 = "$" & Range("B3").Value
importe3 = "$" & Range("B4").Value
importe4 = "$" & Range("B5").Value
importe5 = "$" & Range("B6").Value

' Comprobar datos en las celdas

If Range("A2") = "" Then
MsgBox "No existen conceptos para la cotización"
Exit Sub
End If

' Si no hay un concepto asignado, su importe se pone en blanco para quitar el simbolo de pesos ($)

If Range("B2") = "" Then
importe1 = ""
End If
If Range("B3") = "" Then
importe2 = ""
End If
If Range("B4") = "" Then
importe3 = ""
End If
If Range("B5") = "" Then
importe4 = ""
End If
If Range("B6") = "" Then
importe5 = ""
End If

' Establecemos una nueva instancia del objeto Word

Set wdApp = New Word.Application

' La funcion FileCopy hace la copia de un archivo

FileCopy "ruta_archivo_origen", "ruta_archivo_copia"

' Se abre el archivo de Word (la copia)

Set wdDoc = wdApp.Documents.Open("ruta_archivo_copia")

' Se modifican los marcadores por las variables establecidas (concepto, importe)
el salto de linea es para ir poniendo los conceptos e importes hacia abajo

wdDoc.Bookmarks.Item("marcador1").Range.Text = concepto1 & vbCrLf & concepto2 & vbCrLf & concepto3 & vbCrLf & concepto4 & vbCrLf & concepto5
wdDoc.Bookmarks.Item("marcador2").Range.Text = importe1 & vbCrLf & importe2 & vbCrLf & importe3 & vbCrLf & importe4 & vbCrLf & importe5

' Mantiene abierto el documento de Word

wdApp.Visible = True

' Se destruyen los objetos

Set wdApp = Nothing
Set wdDoc = Nothing


Algo a tomar en cuenta es que en el archivo de Word en la parte donde se definen los conceptos e importes se tienen que poner como 2 columnas para poder utilizar el salto de linea entre cada concepto e importe.

Bueno espero que este codigo les ayude como a mi, o por lo menos les de una idea sobre el uso de marcadores.