Disparar macro solamente una vez
Hola Elsamatilde, necesito de tu ayuda nuevamente. Hace rato me ayudaste con una macro para mandar correos desde excel, pero lo que quiero ahora es que si se cumple la condición de una celda, entonces mande el correo, pero el problema que tengo es que se sigue ejecutando la macro, lo que quiero es que mande solamente una vez el correo al cumplirse la condición. Ejemplo, si la celda F5 dice "cerrado", se ejecute la macro y mande un correo en específico, pero una sola vez, aunque siga diciendo "cerrado" o cambie a "abierto", y cuando vuelva a marcar "cerrado", vuelva a mandar el correo, y ésta condición va a pasar en otras celdas, (aprox. 12 celdas).
Te mando la macro de la rutina del correo que me hiciste el gran favor de ayudarme.
Sub Macro26()
'
' Macro1 Macro
'
Dim myOLApp
Dim myOLItem
Dim midire, miasunto, miRuta, mitexto As String
'datos del mail a enviar
midire = ActiveSheet.Range("H32").Value
miasunto = ActiveSheet.Range("H1").Value
mitexto = ActiveSheet.Range("H2").Value
'se crea un objeto Outlook, Mail
Set myOLApp = CreateObject("Outlook.Application")
Set myOLItem = myOLApp.CreateItem(olMailItem)
'se establecen los campos del mensaje
With myOLItem
'campo A o Para
.to = midire
'campo Asunto
.Subject = miasunto
'cuerpo del mensaje
.body = mitexto
'enviar
.Send
End With
'se liberan las variables creadas
Set myOLApp = Nothing
Set myOLItem = Nothing
End Sub
De antemano muchas gracias y saludos.
Te mando la macro de la rutina del correo que me hiciste el gran favor de ayudarme.
Sub Macro26()
'
' Macro1 Macro
'
Dim myOLApp
Dim myOLItem
Dim midire, miasunto, miRuta, mitexto As String
'datos del mail a enviar
midire = ActiveSheet.Range("H32").Value
miasunto = ActiveSheet.Range("H1").Value
mitexto = ActiveSheet.Range("H2").Value
'se crea un objeto Outlook, Mail
Set myOLApp = CreateObject("Outlook.Application")
Set myOLItem = myOLApp.CreateItem(olMailItem)
'se establecen los campos del mensaje
With myOLItem
'campo A o Para
.to = midire
'campo Asunto
.Subject = miasunto
'cuerpo del mensaje
.body = mitexto
'enviar
.Send
End With
'se liberan las variables creadas
Set myOLApp = Nothing
Set myOLItem = Nothing
End Sub
De antemano muchas gracias y saludos.
1 respuesta
Respuesta de Elsa Matilde
1