
Ejecutar una macro si se alcanza un valor
Publicado por Alabardero (9 intervenciones) el 28/07/2015 22:29:56
Hola,
Estoy trabajando en una macro de excel junto a un amigo. La idea es que cuando una celda concreta alcance un valor se envie un email automaticamente.
Yo no se de programación pero mi amigo si y me ha hecho la macro pero tenemos un problema en la parte que creo "facil" del asunto.
Hemos llegado hasta aqui:
Si le meto a mano el valor entonces envia el email pero si en ved de meter a mano el valor es una formula el que lo calcula no funciona. En concreto, hemos puesto que el email se enviará si la celda B7 es mayor que 5. Si en la celda B7 escribimos 100 entonces perfecto, se envia el email, pero si en esa celda pongo =SI(A8>B8;100;0), entonces nunca manda el email aunque el valor de la celda sea 100 (porque la celda A8 sería mayor que la B8).
La macro es esta
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
Celda = "B7"
If Application.Intersect(Target, Range(Celda)) > 5 Then
'MsgBox ("El valor es mayor que 5")
Call SendEmailUsingGmail
Else
MsgBox ("El valor es menor que 5")
End If
err:
End Sub
Sub Mail_Workbook_1()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
' Change the mail address and subject in the macro before you run it.
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "El valor es mayor q 5"
.Body = "Valor superado"
'.Attachments.Add ActiveWorkbook.FullName
' You can add other files by uncommenting the following line.
'.Attachments.Add ("C:\test.txt")
' In place of the following statement, you can use ".Display" to
' display the mail.
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Mas abajo viene la parte de enviar el email pero esa parte funciona.
No se si alguien nos puede ayudar.
Gracias
Estoy trabajando en una macro de excel junto a un amigo. La idea es que cuando una celda concreta alcance un valor se envie un email automaticamente.
Yo no se de programación pero mi amigo si y me ha hecho la macro pero tenemos un problema en la parte que creo "facil" del asunto.
Hemos llegado hasta aqui:
Si le meto a mano el valor entonces envia el email pero si en ved de meter a mano el valor es una formula el que lo calcula no funciona. En concreto, hemos puesto que el email se enviará si la celda B7 es mayor que 5. Si en la celda B7 escribimos 100 entonces perfecto, se envia el email, pero si en esa celda pongo =SI(A8>B8;100;0), entonces nunca manda el email aunque el valor de la celda sea 100 (porque la celda A8 sería mayor que la B8).
La macro es esta
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
Celda = "B7"
If Application.Intersect(Target, Range(Celda)) > 5 Then
'MsgBox ("El valor es mayor que 5")
Call SendEmailUsingGmail
Else
MsgBox ("El valor es menor que 5")
End If
err:
End Sub
Sub Mail_Workbook_1()
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010.
' This example sends the last saved version of the Activeworkbook object .
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
' Change the mail address and subject in the macro before you run it.
With OutMail
.To = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "El valor es mayor q 5"
.Body = "Valor superado"
'.Attachments.Add ActiveWorkbook.FullName
' You can add other files by uncommenting the following line.
'.Attachments.Add ("C:\test.txt")
' In place of the following statement, you can use ".Display" to
' display the mail.
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Mas abajo viene la parte de enviar el email pero esa parte funciona.
No se si alguien nos puede ayudar.
Gracias
Valora esta pregunta


0