Enviar correo desde otra hoja

Comunidad de TE, quisiera una ayuda con esta consulta, tengo el siguiente código:

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")
h1.Select
Set srang = a.Range("C2", ActiveSheet.Range("C2").End(xlDown).End(xlToRight))
With srang
.Parent.Activate
.Select
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
.Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
& "Detallo a continuación el Registro " & 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

Funciona perfecto, la consulta en si es, como hago para ejecutar esta macro desde otra hoja, ya que este código se lanza desde un botón que se encuentra en la hoja "Por día" y no me funciona en otra.

1 Respuesta

Respuesta

Quiere que funcione en la hoja activa o en otra hoja en especifico

Estas parte es la que controla la hoja

Set a = Worksheets("Por día")

Osea que le indica a la macro que hoja va enviar

Si quieres enviar otra hoja en especifico solo cambia el nopmbre de la hoja osea

Por día es el nombre cambialo por el nombre de la otra hoja

Y si lo que quieres es que envíe la hoja activa seria así

Set a = ActiveSheet

no olvides valora si te silve para cerrar la pregunta

$$\begin{align}&saludados \end{align}$$

Set a = Worksheets("Por día") indica la hoja que se enviara, pero el boton esta en esta misma hoja "Por dia", ahora tengo oootra hoja de nombre "Registro" en donde implemento un boton le agrego la macro pero no envia nada.

Pero cual hoja es la que quieres enviar si es registro

Seria así

Set a = Worksheets("registro")

Aquí la macro completa

Sub EnviarMailregistro()
Dim a As Worksheet
Dim srang As Range
Dim name As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Set a = Set a = Worksheets("registro")
nom = a.name
'Set srang = a.Range("C2:J10")
h1.Select
Set srang = a.Range("C2", ActiveSheet.Range("C2").End(xlDown).End(xlToRight))
With srang
.Parent.Activate
.Select
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
.Introduction = "Estimado " & Range("A3").Value & ":" & vbNewLine & vbNewLine _
& "Detallo a continuación el Registro " & 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

Copia este macro recuerda que las celda a3 es el nombre del cliente

B3 donde estas el correo si en b3 no hay correo no lo va enviar la hoja

Esa celda son fundamental

¿Creo qué no estoy dejando entender?, una vez mas ahi voy XD XD:

La hoja "Por día" tiene un botón que es Enviar correo, esta tiene agregada la macro ya antes mencionada (Sub EnviarMailregistro), ahora yo quiero enviar esa misma hoja "Por día" peeeeeero desde un botón que se encuentra en otra hoja (Registro), no es que quiera enviar esta, se seguirá enviando la misma de siempre solo que se deberá ejecutar desde el botón Enviar correo que se encuentra ubicada en la hoja Registro, pero como mencione no la envía, es decir:

- Hoja "Por día" tiene su botón enviar correo (funciona correcto)

- Hoja "Registro" le agrego un botón Enviar correo (que es la misma macro que debería enviar la hoja por día, pero no envía nada)

Espero se entienda, gracias.

Ok lo que tiene que hacer es agregar la macro al botón

Así click derecho encima del botón

Busca la opción agregar macro

Y elige la macro tuya la EnviarMail

Listo con esto tiene el botón configurado con la macro

No olvides valor así te silve sino sale a camino este es mi correo [email protected]

Para ver donde podria estar el error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas