Duda macro de excel para detectar movimientos y mandar email

Agradecería enormemente si me ayudasen a resolver un problema que les planteo a continuación.
Dispongo de una hoja de excel que se actualiza con una serie de valores por internet con una frecuencia determinada. Necesitaría crear una macro que me avisase via email cuando se cambia el valor de unas celdas en cuestión.
He encontrado varios casos de macros en internet que hacen por separado lo que necesito, por ejemplo:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect([G5:G15], Target) Is Nothing Then Exit Sub
End Sub

1 Respuesta

Respuesta
1

Si me funciona, desde que abro el archivo me empieza a enviar correos.
Estas son las macro que puse en Thisworkbook
Private Sub Workbook_Open()'Por.DAMSheets("Temporal").Range("L5") = Sheets("Mercado Continuo").Range("L5")Sheets("Temporal").Range("L6") = Sheets("Mercado Continuo").Range("L6")End Sub Private Sub Workbook_SheetCalculate(ByVal Sh As Object)'Por.DAMIf Sh.Name <> "Mercado Continuo" Then Exit SubIf Sheets("Temporal").Range("L5") <> Sheets("Mercado Continuo").Range("L5") Then Call correo("L5") End If If Sheets("Temporal").Range("L6") <> Sheets("Mercado Continuo").Range("L5") Then Call correo("L6") End If End Sub Sub correo(celda) Set dam1 = CreateObject("outlook.application") Set dam2 = dam1.createitem(olmailitem) dam2.To = "damor" 'Range("B2") 'Destinatarios dam2.Subject = "Mercado continuo, variación" 'Range("C2") '"Asunto" dam2.body = "variación en celda : " & celda 'Range("D2") '"Cuerpo del mensaje" dam2.Send 'El correo se envía en automáticoEnd Sub
En la macro del correo, en esta línea pon un correo valido y actualiza tu hoja,
dam2. To = "damor" 'Range("B2") 'Destinatarios
recuerda que puse la hoja "temporal" para verificar si hay diferencias en las celdas L5 y L6, no la borres.
Saludos. DAM

Me puedes enviar el archivo

Listo

La pregunta no admite más respuestas

Más respuestas relacionadas