Pegar rango en cuerpo de mail

He visto es macro que hiciste y no me funciona. Cuando se manda el mail llega SIN el rango de celdas que habíamos copiado.

¿Cómo se puede arreglar?

Gracias,

Sub correo()
'***Macro Para enviar correos
'Por.Dam
 Set dam1 = CreateObject("outlook.application")
 Set dam2 = dam1.createitem(olmailitem)
 dam2.to = Range("B2") 'Destinatarios
 dam2.Subject = Range("C2") '"Asunto"
 dam2.body = "cuerpo del mensaje"
Range("E2:H2"). Copy
Dam2. Display 'El correo se muestra
 SendKeys "^{END}"
SendKeys "^v"
DoEvents
Dam2. Send
End Sub

1 respuesta

Respuesta
2

Prueba con esta macro

Sub correo()
'***Macro Para enviar correos
'Por.Dam
    Set dam1 = CreateObject("outlook.application")
    Set dam2 = dam1.createitem(olmailitem)
    dam2.to = Range("B2") 'Destinatarios
    dam2.Subject = Range("C2") '"Asunto"
    dam2.body = "cuerpo del mensaje"
    Range("E2:H2").Copy
    dam2.display 'El correo se muestra
    DoEvents
    Application.Wait Now + TimeValue("00:00:01")
    SendKeys "^{END}", True
    SendKeys "^v", True
    DoEvents
    Dam2. Send
End Sub

En esta línea de la macro
Application. Wait Now + TimeValue("00:00:01")
Le estoy diciendo que se espere un segundo para que el correo se cargue y después le pegue las celdas, a mí me funciona bien con un segundo, pero si no te funciona, incrementa a 3 segundos, te debe quedar así.
Application. Wait Now + TimeValue("00:00:03")

Saludos. DAM
No olvides finalizar la pregunta.

hola lo probé y no funcionó. Tampoco poniendo 3 segundos, incluso me da tiempo a ver la pantalla del outlook pero no veo que haga el pegado.

tiene pinta que el cursos no entra en el cuerpo para hacer el pegado. Debería parpadear dentro del body para hacer el control V ¿verdad?

Ponle 7 segundos

¿Qué versión de excel tienes?

tampoco funciona con 7 segundos

tengo excel 2010

Mmmm, yo tengo 2007 y funciona bien.

Haz lo siguiente

Cambia esta línea en la macro

Dam2. Send

Por esta

Dam2. Display

Ejecuta nuevamente la macro. Cuando tengas el correo en pantalla, dime en dónde está el cursos, dale click al cuerpo del mensaje y presiona Control + V, para pegar. Dime lo que sucede.

Saludos. DAM

al ejecutar la macro como dices veo la página del mail, el cursor no está en ningún sitio pero a los pocos segundos aparece el cursor en el body y se produce el pegado de los datos

Revisa que tengas datos en B2 y C2 y también en E2 a H2

Cambia la macro por esta

Sub correo()
'***Macro Para enviar correos
'Por.Dam
    Set dam1 = CreateObject("outlook.application")
    Set dam2 = dam1.createitem(olmailitem)
    dam2.to = Range("B2") 'Destinatarios
    dam2.Subject = Range("C2") '"Asunto"
    dam2.body = "cuerpo del mensaje"
    Range("E2:H2").Copy
    dam2.display 'El correo se muestra
    DoEvents
    Application.Wait Now + TimeValue("00:00:10")
    SendKeys "^{END}", True
    SendKeys "^v", True
    DoEvents
    Dam2. Display
    DoEvents
    Dam2. Send
End Sub

nada.... tampoco.

¿qué puede estar pasando?

en verdad lo necesito

¿Pero dices que hace el pegado después de unos segundos?

¿Puedes probar en un equipo que tenga versión 2007?

imposible, no tengo otro equipo con 2007

el caso es que con display funciona pero no es operativo, ya que entonces tengo que enviar el correo voluntariamente.

debe funcionar con send

Abajo del segundo display vuelve a poner esta línea

Application. Wait Now + TimeValue("00:00:05")

Qué tienes abierto, ¿solamente excel y outlook? Cierra todo y deja excel y outlook.

ahora sí ha funcionado. De todas formas lo he probado muchas veces y ha habido alguna vez que no lo ha pegado......mi excel será muy exquisito.

muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas