AYUDA: Combinación de correspondencia

24/09/2007 - 19:38 por Jorge Vega | Informe spam
Saludos a todos, les agradecería me ayudaran con lo siguiente, requiero
enviar un correo personalizado a cerca de 200 personas, quiero utilizar la
Combinación de correspondencia desde word pero requiero que en el correo que
se envie se incluyan 2 archivos (Word y Excel), alguien me puede indicar si
esto es posible y como podría hacerlo.

Utilizo Office 2007, pero tengo opción del 2003 si fuera el caso.

Muchas gracias por la ayuda que me puedan brindar

Jorge

Preguntas similare

Leer las respuestas

#6 Tux
27/09/2007 - 19:15 | Informe spam
Hola Jorge :)

Muchas gracias Monica por tu interès.

Ahi se me ocurria, aunque no tengo idea, tengo la macro que envia correo
desde excel, que esta de alguna forma tome en la parte del cuerpo de mensaje
un texto que puede estar en la hoja1 del archivo, adjuntar en la parte del
attach la carta que va en el archivo de word, y el archivo excel por medio
de una ruta fija. Ahora bien, serìa hacer algun tipo de rutina que vaya
recorriendo la base de datos, que tome el correo y lo envie.

Te dejo aca la macro de correo que utilizo y que me funciona bien.

Sub Mail_Range()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object


etc

Bien para el tema del cuerpo del mensaje, tener una macro adicional como
la siguiente en tu libro de excel para copiar el contenido de la carta
en la hoja [ 3 ] de tu libro de excel en el rango [ A1:A15] y luego con
el macro de Ron de Bruin que nos has facilitado coger los datos de [la
hoja 3 , rangos A1:A10 ]

quedando asi :

En un modulo nuevo : [ TEndras que hacer referencia a la librería
Microsoft word 11.0 object library , dependiendo de tu office ] y pegar
el siguiente codigo:

'[]

Sub prueba()

Dim Objword As Word.Application
Dim Documento As Word.Document

Set Objword = CreateObject("Word.Application")
Set Documento = Objword.Documents.Open _
("C:\documents and settings\Usuario\Escritorio\Carta.doc")

Objword.Selection.WholeStory
Objword.Selection.Copy
ActiveSheet.Paste
Objword.Quit

Set Objword = Nothing

End Sub

'[]

una vez la ejecutes te abrira el documento donde tengas tu carta y la
pegara en esa hoja y rangos que te he comentado mas arriba.

Luego en el codigo tendrias que cambiar y añadir las siguientes lineas:

Añadir » » » DEclaraciones:

Dim cell As Range
Dim x As String


Añadir » » » Bucle antes de » With Dest

For Each cell In ThisWorkbook.Sheets("hoja3").Range("A1:A10")
x = x & cell.Value & vbNewLine
Next

Y CAmbiar » » » .Body = "Hi there"

por » »

.Body = x


Y te paso la pagina de tips de Ron de bruin sobre excel:


http://www.rondebruin.nl/sendmail.htm

y para el tema de los mails sacado de la pagina de Ron de bruin:

Añadir lo siguiente que se puede añadir despues de las variables declaradas:

'[]

Dim strto As String

On Error Resume Next
For Each cell In ThisWorkbook.Sheets("hoja2") _
.Range("A1:A2").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" Then
strto = strto & cell.Value & ";"
End If
Next cell
On Error GoTo 0
If Len(strto) > 0 Then strto = Left(strto, Len(strto) - 1)

'[]

y luego cambiar en la linea de codigo :

.to = ""


Por :

.to = strto


Teniendo en cuenta los rangos [ puedes hacer una importacion desde
access [ si tienes aqui los mails ] a excel mediante Datos » obtener
datos externos » Importar datos :-)

Prueba y si ves que surge cualquier duda y demas comentanos ok? :-)

Saludos
Monica
Respuesta Responder a este mensaje
#7 Jorge Vega
28/09/2007 - 07:00 | Informe spam
Barbaro Monica, genial, voy a probarlo mañana en la oficina, para ver como
me resulta.
Te agradezco inmensamente tu ayuda.
Saludos

Jorge


"Tux" escribió en el mensaje
news:
Hola Jorge :)

Muchas gracias Monica por tu interès.

Ahi se me ocurria, aunque no tengo idea, tengo la macro que envia correo
desde excel, que esta de alguna forma tome en la parte del cuerpo de
mensaje un texto que puede estar en la hoja1 del archivo, adjuntar en la
parte del attach la carta que va en el archivo de word, y el archivo
excel por medio de una ruta fija. Ahora bien, serìa hacer algun tipo de
rutina que vaya recorriendo la base de datos, que tome el correo y lo
envie.

Te dejo aca la macro de correo que utilizo y que me funciona bien.

Sub Mail_Range()
'Working in 2000-2007
Dim Source As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object


etc

Bien para el tema del cuerpo del mensaje, tener una macro adicional como
la siguiente en tu libro de excel para copiar el contenido de la carta
en la hoja [ 3 ] de tu libro de excel en el rango [ A1:A15] y luego con
el macro de Ron de Bruin que nos has facilitado coger los datos de [la
hoja 3 , rangos A1:A10 ]

quedando asi :

En un modulo nuevo : [ TEndras que hacer referencia a la librería
Microsoft word 11.0 object library , dependiendo de tu office ] y pegar
el siguiente codigo:

'[]

Sub prueba()

Dim Objword As Word.Application
Dim Documento As Word.Document

Set Objword = CreateObject("Word.Application")
Set Documento = Objword.Documents.Open _
("C:\documents and settings\Usuario\Escritorio\Carta.doc")

Objword.Selection.WholeStory
Objword.Selection.Copy
ActiveSheet.Paste
Objword.Quit

Set Objword = Nothing

End Sub

'[]

una vez la ejecutes te abrira el documento donde tengas tu carta y la
pegara en esa hoja y rangos que te he comentado mas arriba.

Luego en el codigo tendrias que cambiar y añadir las siguientes lineas:

Añadir » » » DEclaraciones:

Dim cell As Range
Dim x As String


Añadir » » » Bucle antes de » With Dest

For Each cell In ThisWorkbook.Sheets("hoja3").Range("A1:A10")
x = x & cell.Value & vbNewLine
Next

Y CAmbiar » » » .Body = "Hi there"

por » »

.Body = x


Y te paso la pagina de tips de Ron de bruin sobre excel:


http://www.rondebruin.nl/sendmail.htm

y para el tema de los mails sacado de la pagina de Ron de bruin:

Añadir lo siguiente que se puede añadir despues de las variables
declaradas:

'[]

Dim strto As String

On Error Resume Next
For Each cell In ThisWorkbook.Sheets("hoja2") _
.Range("A1:A2").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" Then
strto = strto & cell.Value & ";"
End If
Next cell
On Error GoTo 0
If Len(strto) > 0 Then strto = Left(strto, Len(strto) - 1)

'[]

y luego cambiar en la linea de codigo :

.to = ""


Por :

.to = strto


Teniendo en cuenta los rangos [ puedes hacer una importacion desde access
[ si tienes aqui los mails ] a excel mediante Datos » obtener datos
externos » Importar datos :-)

Prueba y si ves que surge cualquier duda y demas comentanos ok? :-)

Saludos
Monica





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida