Notificaciones de excel por correo

Tengo un archivo excel compartido en dropbox, ¿hay alguna manera de que excel o dropbox me notifique por medio de coreo cuando alguien modifique el archivo?

Intenté con macros en excel, pero no lo logré, ¿ahora quizá alguna aplicación externa que yo pueda vincular al dropbox?

Respuesta
2

En Excel pega los siguientes procedimientos para que se envíe un correo antes de cerrar el archivo cundo se realizo un cambio, se debe tener instalado y configurado Outlook.

Informa si tienes alguna otra duda.

Entra al editor de VBA (Alt*F11), da doble clic sobre el objeto ThisWorkbook que se encuentra a la izquierda y pega el siguiente código.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If Cambio = True Then
        Call Envia_Notificacion
    End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    Cambio = True
End Sub

Inserta un módulo ( Menu Inserta-Módulo) y pega el siguiente código, es con el que se hará el envío por correo.

Public Cambio As Boolean

Sub Enviar_Adjunto()

    Application.DisplayAlerts = False
    Dim OLApp As Outlook.Application
    Dim OLMail As Object

    Set OLApp = New Outlook.Application
    Set OLMail = OLApp.CreateItem(0)
    OLApp.Session.Logon

    With OLMail
        .To = "[email protected]" 'cuenta de correo al quien se va a informar (entre comillas dobles "")
        .Subject = "Asunto del Correo"
        .Body = "Cuerpo del Correo"
        .Display
        .Send
    End With

    Set OLMail = Nothing
    Set OLApp = Nothing
End Sub

Hola, muchas gracias! Solo tengo un problemita en thisworkbook, me marca que es errónea la sub inicial :/

Perdón solo copie y pegue el último procedimiento sin cambiar el nombre, cambia el procedimiento que te genera error por éste que envío y también hay que hacer referencia a Outlook, desde el editor de VBA menú Herramientas-Referencias marca Microsoft Outlook 15.0 Object Library (la versión depende de Office que utilices).

Avisa si tienes algún otro problema.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If Cambio = True Then
        Call Enviar_Adjunto
    End If
End Sub

Ok ya se arregló eso, pero ahora en el módulo, en la línea:

Dim OLApp As Outlook.Application

Me dice que hay error de compilación, no se ha definido el tipo definido por el usuario

Muchas gracias de antemano :)

¿Hiciste la referencia al objete de Outlook? Lo debes hacer como la imagen que coloque, yo ejecute la macro y no tuve problema, revísalo

Hola, creo que ya casi, es solo que no se manda solo el correo, tengo que dar ejecutar macro, será posible que se mande solo? o tendría que poner algún botón? Si se pudiera automáticamente estaría excelente. Me marca que hay algo que depurar en el modulo, pero no me dice que es :/, yo no veo ningún error, y la prueba está en que si ejecuto la macro si me manda el correo.

Espero puedas seguir ayudándome, muchas gracias David :)

Ya lo logre! Mil mil gracias David!

Pues con la novedad, que ya al ponerla en práctica, no me manda los correos, solo me manda coreo de las modificaciones que yo hago, pero no las que hacen los demás :/ y me lo están pidiendo urgente, tengo estressss total jajja, ya le moví todo lo que yo pienso puede ser y nada, y revisé errores y nada, ya asigné el outlook, que en mi caso es 14.0, y nada, :( 

Y tengo que darle ejecutar para que se pueda enviar el correo de mi  propia modificación :( 

¿Será qué se pueda enviar al hacer algo más específico como guardar el archivo?

Cambia ésta parte del código, si no quieres que se muestra el correo antes de enviar elimina la línea que dice ".Display" y en el objeto elimina el código anterior y coloca el que comparta hasta abajo, con éste, el envío se realiza después de que hayan guardado el archivo.

Avisa si tienes alguna otra duda, Saludos.

---------------------------------------------------------------------------------------------------------------------------------------------------

With OLMail
        .To = "*****@hotmail.com" 'cuenta de correo al quien se va a informar (entre comillas dobles "")
        .Subject = "Asunto del Correo"
        .Body = "Cuerpo del Correo"
        .Attachments.Add ActiveWorkbook.FullName
        .Display
        .Send
    End With

---------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

    Call Enviar_Adjunto
End Sub

---------------------------------------------------------------------------------------------------------------------------------------------------

Hice el cambio y no hay ningún problema si yo soy la que hace el cambio, pero si alguien mas lo hace, desde su computadora, entonces al guardar les sale la ventana que adjunto, me viene a la mente, que quizá es por que los demás no tienen vinculado su excel con outlook, pero cuando les pido que lo hagan, no se puede, por que no les aparece disponible la opción "referencias".

Recuerda que todo es mediante dropbox y lo que ocupo es que me notifique cuando alguien mas, en otra computadora realice un cambio o guarde la versión :/

Muchas gracias por tu ayuda David!!

Haz la referencia a Microsoft Outlook 15.0 object Library en los equipos que lo utilizarán, si el problema es por tenerlo guardado en DropBox me sería complicado ayudarte, nunca he utilizado el portal para almacenar información.

¡Gracias! Muchas gracias por tu ayuda David, pues intentaré ver si los demás pueden hacer la referencia, si no, pues me rendiré, que lo hagan los de departamento de sistemas :/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas