Crear mensaje outlook con información fila de excel

Una vez mas abuso de tu confianza para hacerte una petición:

Tengo una hoja de Excel activa con información en varias filas

Necesito una macro que me abra un mensaje y me pregunte por una fila

Al ponerle yo el número de fila (ejemplo 9)

Me abra Outlook:

Para: (vacío, a fin de poner yo el destinatario)

Asunto: “informe”

En el cuerpo del texto poder poner varios contenidos de la fila que puse al principio:

Número de petición: “información que hay en la celda B9

Número de personas que asisten: “información de la celda D9

Número de comensales: “información que hay en la celda F9

Si pongo la fila 18, entonces me reporte la información de B18, D18... Etc.

1 Respuesta

Respuesta
1

Te anexo la macro

Sub Presentar_Mensaje()
    fila = InputBox("Escribe el número de fila")
    If fila = "" Or Not IsNumeric(fila) Then
        MsgBox "Proceso cancelado"
        Exit Sub
    End If
    Set dam = CreateObject("Outlook.Application").CreateItem(0)
    dam.Subject = "informe"
    dam.Body = "Número de petición: " & Range("B" & fila) & vbCr & _
        "Número de personas que asisten: " & Range("D" & fila) & vbCr & _
        "Número de comensales: " & Range("F" & fila)
    dam.Display                             'El correo se muestra
End Sub

.

.

¡Gracias! 

ha tardado 10 minutos en contestarme y ha sido perfecto,

Te estoy eternamente agradecido.

Saludos desde España

¿Cómo puedo darle más interlineado entre las líneas del mensaje?

Esta forma, agrega más Vbcr, revisa el ejemplo:

Sub Presentar_Mensaje()
    fila = InputBox("Escribe el número de fila")
    If fila = "" Or Not IsNumeric(fila) Then
        MsgBox "Proceso cancelado"
        Exit Sub
    End If
    Set dam = CreateObject("Outlook.Application").CreateItem(0)
    dam.Subject = "informe"
    dam.Body = "Número de petición: " & Range("B" & fila) & vbCr & vbcr & _
        "Número de personas que asisten: " & Range("D" & fila) & vbCr & vbcr & _
        "Número de comensales: " & Range("F" & fila)
    dam.Display                             'El correo se muestra
End Sub

sal u dos

Estupendo, actúa según lo esperado.

Ya te hago la última pregunta, me ha surgido sobre la marcha

¿Como puedo poner al principio del cuerpo del mensaje un texto como "buenos días"

Y al final "un saludo"

YA NO TE PIDO MÁS,

Prueba así:

Sub Presentar_Mensaje()
    fila = InputBox("Escribe el número de fila")
    If fila = "" Or Not IsNumeric(fila) Then
        MsgBox "Proceso cancelado"
        Exit Sub
    End If
    Set dam = CreateObject("Outlook.Application").CreateItem(0)
    dam.Subject = "informe"
    dam.Body = "Buenos días" & vbcr & vbcr & _
        "Número de petición: " & Range("B" & fila) & vbCr & vbcr & _
        "Número de personas que asisten: " & Range("D" & fila) & vbCr & vbcr & _
        "Número de comensales: " & Range("F" & fila) & vbcr & vbcr & _ 
        "Saludos cordiales"
    Dam. Display 'El correo se muestra
End Sub

No hay problema, pero si creas otra pregunta para poner cómo hacer más interlineado. En el desarrollo de la pregunta escribe "Para Dante Amor" 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas