Alerte email à la fermeture du fichier ssi modifications [RESOLU]

Riri123

XLDnaute Nouveau
Bonjour,

J'essaie d'expliquer mon problème le plus clairement possible...

J'aimerais que mon fichier excel envoie un email lors de sa fermeture, à condition qu'une modification ait été effectuée dans un champ donné (feuille1, colonnes A à H).

- Pour cela, j'ai déclaré une variable booléenne globale "modif" qui est affectée à "false" à l'ouverture du fichier (dans module thisworkbook)

Code:
Public Modif As Boolean


Sub Workbook_Open()
    
    
    Modif = False
    
End Sub

- Ensuite, dans module Sheet1, j'affecte la valeur "true" à "modif" si un changement est effectué dans le champ défini.

Code:
Sub Worksheet_Change(ByVal Target As Range)
    Dim Cel As Range
        
    ' Détection de modifications
    For Each Cel In Target
        
        If Not Intersect(Cel, Range("A1:H1000")) Is Nothing Then   ' Plage de cellules à contrôler
            
            Modif = True
            
            'Cel.Interior.Color = vbRed        ' Mettre en évidence la cellule modifiée
                        
        End If
        
    Next Cel
End Sub

- Ensuite je reviens dans le module thisworkbook et demande d'envoyer le mail seulement si la condition modif=TRUE est remplie et que Outlook est ouvert.

Code:
Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Utilisateur As String
Utilisateur = Application.UserName

Dim nom_fichier As String
nom_fichier = "O:\HG\ST"       ' Adresse fichier
    
' Envoi email si outlook est ouvert
    Dim Appli As Object
 
    On Error Resume Next
    Set Appli = GetObject(, "Outlook.Application")
 
    'If ThisWorkbook.Worksheets("Liefertermine").Modif.Value = True Then
    If Modif = True Then
    
        If Appli Is Nothing Then
        
           
        Else
            
            ' À la fermeture du fichier, envoyer un email
            Dim ol As Object, monmail As Object
            DisplayAlerts = False
            Set ol = CreateObject("outlook.application")
            Set monmail = ol.CreateItem(olMailItem)
            monmail.To = "yy.xx@machin.com"                   ' Adresse email à entrer
            monmail.Subject = "Installation GX - Modifications commandes"
            monmail.Body = "Modifications effectuées dans le fichier de commandes par " & Utilisateur & Chr(10) & Chr(10) & _
                "Le fichier se trouve à l'adresse suivante:" & Chr(10) & "file://" & nom_fichier
            monmail.Send
            Set ol = Nothing
        
        End If
    End If

 
End Sub

Il y a un problème avec la variable "modif", car le mail n'est pas envoyé. Je je sais pas si c'est un problème d'accès à la variable ou si la valeur de celle-ci n'est pas correctement mise à jour..

Merci d'avance pour votre aide précieuse et salutations
 

Pièces jointes

  • Lieferfriste.xlsm
    27.7 KB · Affichages: 36
  • Lieferfriste.xlsm
    27.7 KB · Affichages: 39
  • Lieferfriste.xlsm
    27.7 KB · Affichages: 39
Dernière édition:

pyfux

XLDnaute Occasionnel
Re : Alerte email à la fermeture du fichier ssi modifications

Bonjour,
Pour mettre un point d'arrêt (afin de debugger un code VBA), cliquer dans la colonne grise à gauche du code.
Cela ajout un rond rouge et l'exécution se bloque alors à ce point. Utiliser F8 pour faire un pas à pas détaillé...
Vous verez bien le problème...

Note: le
On Error Resume Next
ne doit pas vous aider! :)
 

Riri123

XLDnaute Nouveau
Re : Alerte email à la fermeture du fichier ssi modifications

Hum....

Est-ce que c'est une réponse sérieuse ou c'est de la provocation...?

Si je me permets de poster cette question ici, c'est que j'ai déjà bien cherché et transpiré de mon côté avant de venir ici.

Je m'attendais à des remarques plus constructives à vrai dire...

Merci à ceux qui sauront m'aider un peu plus..
 

pyfux

XLDnaute Occasionnel
Re : Alerte email à la fermeture du fichier ssi modifications

Bonjour,

Ce n'est absolument pas de la provocation.

Afin de répondre à votre interrogation:
Je je sais pas si c'est un problème d'accès à la variable ou si la valeur de celle-ci n'est pas correctement mise à jour.
Pour savoir l'état de votre variable, il faut ajouter des points d'arrêt dans votre code...

Courage!
 

Riri123

XLDnaute Nouveau
Re : Alerte email à la fermeture du fichier ssi modifications

Salut pyfux,

Fabuleux, ça marche...

J'avais essayé de le faire dans Thisworkbook, mais pas à l'extérieur de cet objet. Quel idiot...

Merci beaucoup pour ton aide en tout cas et bonne journée
 

Discussions similaires

Réponses
1
Affichages
245
Réponses
2
Affichages
151

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33