Seleccionar rango dinámico o variable para Email

Tengo este código el cual me permite enviar correos electrónicos desde Excel, funciona bien, el detalle es que me selecciona un rango estático, y ya que ese rango puede aumentar o disminuir constantemente, necesito que el rango elegido sea variable o dinámico (creo que es lo mismo), a continuación dejo lo mencionado, gracias!

Sub EnviarMail()
    Dim a As Worksheet
    Dim srang As Range
    Dim name As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Set a = Worksheets("Por día")
    nom = a.name
    Set srang = a.Range("C2:J10") 'AQUI ESTA EL RANGO ESTATICO =(
    With srang
        .Parent.Select
        .Select
                ActiveWorkbook.EnvelopeVisible = True
                With .Parent.MailEnvelope
                     .Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
                     & "Detallo los nuevo datos :" & vbNewLine
                        With .Item
                        .To = Range("B3").Value
                        .Subject = "Registros"
                        .Send
                        End With
                End With
    End With
    a.Select
    ActiveWorkbook.EnvelopeVisible = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

1 Respuesta

Respuesta
1

Prueba así:

Sub EnviarMail()
    Dim a As Worksheet
    Dim srang As Range
    Dim name As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Set a = Worksheets("Por día")
    nom = a.name
    rango = Selection.Address
    Set srang = a.Range(rango) 'AQUI ESTA EL RANGO ESTATICO =(
    With srang
        .Parent.Select
        .Select
                ActiveWorkbook.EnvelopeVisible = True
                With .Parent.MailEnvelope
                     .Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
                     & "Detallo los nuevo datos :" & vbNewLine
                        With .Item
                        .To = Range("B3").Value
                        .Subject = "Registros"
                        .send
                        End With
                End With
    End With
    a.Select
    ActiveWorkbook.EnvelopeVisible = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas