OVH Cloud OVH Cloud

modifications

1 réponse
Avatar
Asterix
bonjour,

je souhaiterais etre averti lors de la modif d'un fichier en recevant un
mail avec le nom de l'utilisateur, le nom du fichier.
comment est-ce possible

merci à tous

Asterix

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

L'événement qui est déclenché lorsqu'un fichier est modifié est l'événement
Change (feuille et classeur). Cet événement peut être déclenché de nombreuses
fois à la minute et tu risques de te spammer tout seul si tu t'envoyes un
courriel à chaque modification !...
D'autres événements sont utilisables pour signaler l'utilisation d'un classeur :
Open, Save ou BeforeClose par exemple. Quand tu auras fait ton choix, tu peux
essayer d'appeler dans l'événement voulu la macro ci-dessous (à copier dans un
module standard du classeur 'à surveiller', en faisant attention aux sauts de
lignes intempestifs) :

'======================= Private Declare Function InternetAutodial Lib "Wininet" _
(ByVal dwFlags As Long, ByVal hwndParent As Long) As Long

Private Declare Function InternetAutodialHangup Lib "wininet.dll" _
(ByVal dwReserved As Long) As Long

Public Declare Function InternetGetConnectedState Lib "wininet.dll" _
(lpdwFlags As Long, ByVal dwReserved As Long) As Boolean


Sub SignaleChangement()
Dim EtatConnexion As Boolean, Etat As Long
Dim Destinataire$, Expéditeur$, Sujet$
Dim TexteMessage$, S$, ServeurSMTP$

'Se connecter à Internet si ce n'est fait
EtatConnexion = (InternetGetConnectedState(Etat, 0&) <> 0)
If Not EtatConnexion Then
InternetAutodial 1, 0
While Not (InternetGetConnectedState(Etat, 0&) <> 0)
Wend
End If

'Paramètres à renseigner avec des infos valides :
Expéditeur = ""
Destinataire = ""
Sujet = "Info"
S = ActiveWorkbook.Name & " ouvert par " & Application.UserName & vbLf
S = S & Format(Now, "dddd dd mmmm yyyy hh:mm:ss")
TexteMessage = S
ServeurSMTP = "smtp.wana.fr"

'Construction et envoi
With CreateObject("CDO.Message")
.From = Expéditeur
.To = Destinataire
.Subject = Sujet
.TextBody = TexteMessage
With .Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
ServeurSMTP
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
.Send
End With

'Remise en l'état initial
If Not EtatConnexion Then InternetAutodialHangup 0&

End Sub
'=======================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Asterix a écrit:
bonjour,

je souhaiterais etre averti lors de la modif d'un fichier en recevant un
mail avec le nom de l'utilisateur, le nom du fichier.
comment est-ce possible

merci à tous

Asterix