Probléme d'envoie de modification de fichier

roulio66 Messages postés 8 Statut Membre -  
roulio66 Messages postés 8 Statut Membre -
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.

3 réponses

  1. Yoda
     
    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
  2. roulio66 Messages postés 8 Statut Membre
     
    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
  3. roulio66 Messages postés 8 Statut Membre
     
    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