Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 = "frederic.sigonneau@wana.fr"
Destinataire = "frederic.sigonneau@wana.fr"
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
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