Probléme d'envoie de modification de fichier

Fermé
roulio66 Messages postés 8 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 26 avril 2015 - Modifié par Whismeril le 23/04/2015 à 18:49
roulio66 Messages postés 8 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 26 avril 2015 - 26 avril 2015 à 13:35
Bonjour
voila je suis débutant en VBA j'ai créé un fichier partager et j'aimerai que a chaque modification du fichier cela m'envoie un mail:
j'utilise un petit code cela marche très bien quand je l'exécute sur mon pc car j'ai la version dure d'Excel hélas mais collaborateur n'on que la version légère et de ce fait l'envoie ne s'effectue pas .
pouvez vous me dire si est il est possible de réaliser l'opération
voila le code que j'utilise:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim ol As Object, monmail As Object
DisplayAlerts = False
Set ol = CreateObject("outlook.application")
Set monmail = ol.CreateItem(olMailItem)
monmail.To = "XXX@XXXX"
monmail.Subject = "Modifs"
monmail.Body = "Modifications enregistrées dans le fichier trucmuche"
monmail.Send
Set ol = Nothing
End Sub


EDIT: Ajout de la coloration syntaxique.
A voir également:

3 réponses

Bonjour,

Le code est correct, c'est déjà ça.
Après, je ne connais pas de version légère d'Excel.
A partir de la version 2007, les fichiers contenant des macros doivent avoir l'extension .xlsx
Sinon, il faut configurer Excel en mode compatibilité 2003.
De plus, comme une macro peut être potentiellement dangereuse, il faut que le poste client autorise l'exécution des macros, voir dans les paramètres de sécurité d'Excel.
A+
0
roulio66 Messages postés 8 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 26 avril 2015
26 avril 2015 à 13:29
Bonjour alors en cherchant j'ai réussi a faire ce code avec la méthode CDO mais sa bloque au niveau du . send
je ne comprend pas pourquoi
voila le code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim mMessage As Object
Dim mConfig As Object
Dim mChps

Set mConfig = CreateObject("CDO.Configuration")

mConfig.Load -1
Set mChps = mConfig.Fields
With mChps
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Adapter suivant votre serveur de mail. (exemple pour Gmail.)=> Hormail "smtp.live.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.office365.com"
'En principe, 25 fonctionne avec tout les serveurs.
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

'Vous pouvez essayer sans ces trois lignes
'Mais si votre serveur demande une authentification,
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "jaaa.jjjs@r-revolution-sante.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "XXXXX"
'Si votre serveur demande une connexion sûre (SSL)
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = "true"
.Update
End With

Set mMessage = CreateObject("CDO.Message")
With mMessage
Set .Configuration = mConfig
.To = "ju@hol.fr"
.From = "jaaa.jjjs@r-revolution-sante.com"
.Subject = "TESTE 1 "
.TextBody = "Ce mail vous est envoyer pour tester la macros"
'Pour ajouter une pièce jointe, un fichier, classeur, image etc.
'.AddAttachment 'Chemin et nom complet du fichier à joindre
.Send
End With
Set mMessage = Nothing
end sub
0
roulio66 Messages postés 8 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 26 avril 2015
26 avril 2015 à 13:35
oups j'ai oublier de copier la fin de mon code voila les ligne qui manque
Set mConfig = Nothing
Set mChps = Nothing
End Sub
0