Winniechips
XLDnaute Nouveau
Bonjour,
J'ai créé un fichier de suivi des dates d'habilitation avec une mise en forme conditionnelle suivant le délai restant avant fin de validité. Mes cellules passent du vert, au jaune, au orange puis au rouge.
Cette mise en forme fonctionne.
Ce que je souhaitais arriver à faire, c'est que le fichier excel s'ouvre en off lors du démarrage de ma session (sans ouverture du fichier de ma part) et qu'une macro tourne et m'envoie un mail pour me prévenir qu'une échéance arrive.
J'ai donc créé un fichier en VBS que j'ai mis dans le dossier démarrage de ma session. Je pense que le fichier vbs fonctionne car je vois le raccourci temporaire de mon fichier excel sur le bureau :
Fichier VBS :
Dim xlapp, classeur, feuille
Set xlapp = CreateObject("Excel.Application")
Set classeur = xlapp.Workbooks.Open("C:\Documents and Settings\Bureau\Test Tableau de Suivi des Habilitations avec macro.xlsm")
Set feuille = xlapp.ActiveSheet
WScript.Sleep(180*1000)
classeur.close
set feuille = nothing
set classeur = nothing
J'ai créé une macro avec la méthode Auto Open que j'ai placé dans le Workbook :
Sub Aut pen()
Envoi_Mail_Alerte_Habilitation
End Sub
Sub Envoi_Mail_Alerte_Habilitation()
Dim i As Integer
Dim j As Integer
Dim l_bool_condition1 As Boolean
Dim l_bool_condition2 As Boolean
Dim l_bool_condition3 As Boolean
l_bool_condition1 = False
l_bool_condition2 = False
l_bool_condition3 = False
For i = 3 To 12
For j = 5 To 35
If Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 255, 0) And l_bool_condition1 = False Then
Envoi_Mail_entre_3_et_6_Mois
l_bool_condition1 = True
ElseIf Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 192, 0) And l_bool_condition2 = False Then
Envoi_Mail_inf_3_Mois
l_bool_condition2 = True
ElseIf Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 0, 0) And l_bool_condition3 = False Then
Envoi_Mail_Dépassement
l_bool_condition3 = True
End If
l_bool_condition1 = False
l_bool_condition2 = False
l_bool_condition3 = False
Next j
Next i
End Sub
Ensuite, j'ai créé 3 modules :
Le 1er Module :
Sub Envoi_Mail_inf_3_Mois()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est inférieure à 3 Mois."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Le 2nd Module :
Sub Envoi_Mail_entre_3_et_6_Mois()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est comprise entre 3 et 6 Mois."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Le 3ème Module :
Sub Envoi_Mail_Dépassement()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est dépassée."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Voilà la totalité de mon code sur lequel je travaille depuis plusieurs mois (j'ai des connaissances limitées en programmation mais je me suis débrouillée avec les tutos). Si quelqu'un pourrait m'expliquer pourquoi je ne reçois aucun mail...
Merci du temps que vous prendrez à étudier mon problème.
J'ai créé un fichier de suivi des dates d'habilitation avec une mise en forme conditionnelle suivant le délai restant avant fin de validité. Mes cellules passent du vert, au jaune, au orange puis au rouge.
Cette mise en forme fonctionne.
Ce que je souhaitais arriver à faire, c'est que le fichier excel s'ouvre en off lors du démarrage de ma session (sans ouverture du fichier de ma part) et qu'une macro tourne et m'envoie un mail pour me prévenir qu'une échéance arrive.
J'ai donc créé un fichier en VBS que j'ai mis dans le dossier démarrage de ma session. Je pense que le fichier vbs fonctionne car je vois le raccourci temporaire de mon fichier excel sur le bureau :
Fichier VBS :
Dim xlapp, classeur, feuille
Set xlapp = CreateObject("Excel.Application")
Set classeur = xlapp.Workbooks.Open("C:\Documents and Settings\Bureau\Test Tableau de Suivi des Habilitations avec macro.xlsm")
Set feuille = xlapp.ActiveSheet
WScript.Sleep(180*1000)
classeur.close
set feuille = nothing
set classeur = nothing
J'ai créé une macro avec la méthode Auto Open que j'ai placé dans le Workbook :
Sub Aut
Envoi_Mail_Alerte_Habilitation
End Sub
Sub Envoi_Mail_Alerte_Habilitation()
Dim i As Integer
Dim j As Integer
Dim l_bool_condition1 As Boolean
Dim l_bool_condition2 As Boolean
Dim l_bool_condition3 As Boolean
l_bool_condition1 = False
l_bool_condition2 = False
l_bool_condition3 = False
For i = 3 To 12
For j = 5 To 35
If Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 255, 0) And l_bool_condition1 = False Then
Envoi_Mail_entre_3_et_6_Mois
l_bool_condition1 = True
ElseIf Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 192, 0) And l_bool_condition2 = False Then
Envoi_Mail_inf_3_Mois
l_bool_condition2 = True
ElseIf Worksheets("Suivi").Cells(i, j).Interior.Color = RGB(255, 0, 0) And l_bool_condition3 = False Then
Envoi_Mail_Dépassement
l_bool_condition3 = True
End If
l_bool_condition1 = False
l_bool_condition2 = False
l_bool_condition3 = False
Next j
Next i
End Sub
Ensuite, j'ai créé 3 modules :
Le 1er Module :
Sub Envoi_Mail_inf_3_Mois()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est inférieure à 3 Mois."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Le 2nd Module :
Sub Envoi_Mail_entre_3_et_6_Mois()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est comprise entre 3 et 6 Mois."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Le 3ème Module :
Sub Envoi_Mail_Dépassement()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
With oBjMail
.To = "mon adresse email"
.Subject = "Echéance Habilitations du Personnel"
.Body = "Attention, la date de validité d'une formation ou habilitation d'un salarié est dépassée."
.Send
End With
ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Voilà la totalité de mon code sur lequel je travaille depuis plusieurs mois (j'ai des connaissances limitées en programmation mais je me suis débrouillée avec les tutos). Si quelqu'un pourrait m'expliquer pourquoi je ne reçois aucun mail...
Merci du temps que vous prendrez à étudier mon problème.