Enviar correo (outlook) desde excel

Es lo siguiente:

Tengo este código que me permite enviar email desde excel, el tema esta en que si deseo que esta macro se ejecute desde otra hoja ya no funciona, lo que quiero decir es que si ejecuto la macro desde la misma hoja que deseo enviar funciona perfecto (Worksheets("Por día")), pero si deseo ejecutar la macro para enviar la misma hoa (Worksheets("Por día")) desde otra esta no funciona, podrían ayudarme con este inconeniente, gracias...

Sub EnviarMail()
Application.ScreenUpdating = False
    Dim a As Worksheet
    Dim srang As Range
    Dim name As String
    On Error Resume Next
    Application.EnableEvents = False
    Set a = Worksheets("Por día")
    nom = a.name
    Set srang = a.Range("C2", ActiveSheet.Range("C2").End(xlDown).End(xlToRight))
    With srang
        .Parent.Select
        .Select
                ActiveWorkbook.EnvelopeVisible = True
                With .Parent.MailEnvelope
                     .Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
                     & "Detallo a continuación el Registro, actualizado a la fecha & vbNewLine _
                     & "siendo un total de " & Range("B1").Value & " registro(s)"
                        With .Item
                        .To = Range("B3").Value
                        .Subject = "Registro"
                        .Send
                        End With
                End With
    End With
    a.Select
    ActiveWorkbook.EnvelopeVisible = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

1 respuesta

Respuesta
1

Si entiendo bien, lo que quieres es enviar la hoja "Por día", sin importar en cuál hoja te encuentres. ¿Es correcto?

Prueba con la siguiente macro

Sub EnviarMail()
    Application.ScreenUpdating = False
    Dim a As Worksheet
    Dim srang As Range
    Dim name As String
    On Error Resume Next
    Application.EnableEvents = False
    hoja_activa = ActiveSheet.name
    Set a = Worksheets("Por día")
    a.Select
    nom = a.name
    Set srang = a.Range("C2", ActiveSheet.Range("C2").End(xlDown).End(xlToRight))
    With srang
        .Parent.Select
        .Select
        ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope
             .Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
             & "Detallo a continuación el Registro, actualizado a la fecha & vbNewLine" _
             & "siendo un total de " & Range("B1").Value & " registro(s)"
            With .Item
                .To = Range("B3").Value
                .Subject = "Registro"
                .Send
            End With
        End With
    End With
    a.Select
    Sheets(hoja_activa).Select
    ActiveWorkbook.EnvelopeVisible = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

¡Gracias! Excelente, una consulta ya que trabajo con outlook, al ejecutar la macro me sale esto, ¿sera posible omitirlo y que sea automático? Gracias.

Ese mensaje es del antivirus de tu computadora. Para quitar el mensaje tendrías que desintalar tu antivirus. O buscar en la configuración de tu antivirus, si existe la opción para quitar ese mensaje.

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas