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?
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 :)
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, :(
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!!
- Compartir respuesta