' On lance la macro si une des cases de la colonne F feuille 2 change de valeur
Private Sub Worksheet_Change(ByVal Target As Range)
' pour toutes les lignes de la colonne F
For i = 6 To 218
'Si F et une ligne entre 6 et 218 prend la valeur envoi mail, on lance la procédure d'envoi du mail
If Range("F" & i).Value = "envoi mail" Then
GoTo EnvoiMail
End If
'Si F ne prend pas la valeur "envoi mail", on regarde à la ligne suivante
Next i
'procedure d'envoi du mail
EnvoiMail:
'message d'avertissement
MsgBox "[COLOR="#00FF00"]voulez-vous commander ?[/COLOR]", vbYesNo, "[COLOR="#00FF00"]Stock critique[/COLOR]"
'Si on clique sur Oui
If MsgBoxResult = Yes Then
'On cherhce ou est enregistrer le classeur actif
P = ThisWorkbook.Path
'On enregistre un pdf de ce classeur à la même place que le classeur actif
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=P & "\[COLOR="#00FF00"]Commande[/COLOR].pdf"
'On configure l'envoi du mail
Dim oCDO
Set oCDO = CreateObject("CDO.Message")
With oCDO
With .Configuration.Fields ' Configuration du compte mail SMTP
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = "2"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "[COLOR="#00FF00"]Adresse smtp du serveur[/COLOR]"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "[COLOR="#00FF00"]numéro de port du serveur[/COLOR]"
'----- Dans le cas ou le serveur de mail demande une authentification
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = "1"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[COLOR="#00FF00"]adresse sur le serveur utilisée pour l'envoi[/COLOR]"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "[COLOR="#00FF00"]mot de passe pour cette adresse [/COLOR]"
'----------------
.Update
End With
'On place notre message, la pièce jointe et l'adresse du destinataire
.From = "[COLOR="#00FF00"]adresse sur le serveur[/COLOR]"
.To = "[COLOR="#00FF00"]alexandre.martin@fr.issworld.com[/COLOR]"
.TextBody = "[COLOR="#00FF00"]Texte du mail[/COLOR]"
.AddAttachment P & "\[COLOR="#00FF00"]Commande[/COLOR].pdf"
.Send
End With
'On détruit le fichier créé pour l'envoi (pas la peine d'encombrer)
Kill (P & "\[COLOR="#00FF00"]Commande[/COLOR].pdf")
'Message pour dire que tout a été fait
MsgBox "[COLOR="#00FF00"]Une alerte mail a été envoyé au responsable des commandes[/COLOR]"
'On sort de la macro pour ne pas avoir 100 mails d'un coup si 100 articles viennent à manquer
GoTo endsub
End If
'Si la msgbox prend la valeur Non, on arrête la macro
If MsgBoxResult= No Then
GoTo endsub
endsub:
End Sub