sebastien450
XLDnaute Occasionnel
Bonjours a tous et à toutes déja!
J'ai déja posté ici car je fait un projet.
J'explique un peut globalement afin que cela soit plus clair.
Je travaille dans une entreprise où on utilise pour la découpe et l'emboutissage des Outils. Il y a donc une usure de certaines pieces, que j'ai repertoriés et classé. Actuellement je connais donc le fréquentiel de changement des piéces et je sais quand je doit les changer.
Excel intervient là puisque aprés avoir changé les pièces je doit les commander. La maintenance remplis donc un tableau et suivant certain critére dans une case le parametre "commander" s'affiche si besoin.
Je précise que je suis sur Vista et Windows mail mais que dans l'entreprise certains sont avec Vista d'autre Windows 98, HP... et il en ai de meme pour les messageries!
Je souhaite donc envoyer un mail si "Commander" apparait; chose que j'ai réussi a faire , seulement 2 probleme se présente a moi:
Le premier, qui est aussi le plus important est la condition pour envoyer le mail, je n'arrive a l'appliquer que sur une ligne (I12) donc que doit-je modifier sur le code suivant pour quel s'applique sur I4:I9 et I12:I49.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UserForm1.Show
' rep = InputBox("date")
' Range(Y28) = rep
Sheets("Commande Out XXX").Select
If Range("I12").Value = "" Then
Exit Sub
End If
MailAvecOEouWinMail1
Windows("Gestion Stock Ressorts.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Voila pour le premier point, le second point, qui est moins important d'un point de vue réalisation est le suivant:
Quand j'envoie mon mail via la fonction ci desus, à la fermeture du fichier Excel, j'aurais bien aimer metre un lien vers le classeur Excel ( il s'agirait d'un fichier mis en réseau). Si cela est trop compliquer ( Systeme d'exploitation diférents, Messagerie différentes...) tant pis il ira lui meme chercher le fichier pour l'ouvrir!
Ci joint le code pour envoyer le mail:
Sub MailAvecOEouWinMail1()
Dim WshShell As Object
Dim Dest As String
Dim Sujt As String
Dim Msg As String
Dim MailProg As String
Dim Env As String, Pos As Integer
Set WshShell = CreateObject("WScript.Shell")
MailProg = "C:\Program Files\Windows Mail\WinMail.exe"
Set WshShell = Nothing
Pos = InStrRev(MailProg, "%")
If Pos > 0 Then
Env = Environ(Mid(MailProg, 2, Pos - 2))
MailProg = Mid(MailProg, Pos + 1)
End If
Dest = "sebastien_seb_5@msn.com"
Sujt = "Test d'envoi avec Excel"
Msg = "Bonjours il faudrait commander pieces dans dossier ci-joint"
Shell Env & MailProg & " /mailurl:mailto:" & Dest & "?subject=" & _
Sujt & "&Body=" & Msg
End
End Sub
J'ai déja posté ici car je fait un projet.
J'explique un peut globalement afin que cela soit plus clair.
Je travaille dans une entreprise où on utilise pour la découpe et l'emboutissage des Outils. Il y a donc une usure de certaines pieces, que j'ai repertoriés et classé. Actuellement je connais donc le fréquentiel de changement des piéces et je sais quand je doit les changer.
Excel intervient là puisque aprés avoir changé les pièces je doit les commander. La maintenance remplis donc un tableau et suivant certain critére dans une case le parametre "commander" s'affiche si besoin.
Je précise que je suis sur Vista et Windows mail mais que dans l'entreprise certains sont avec Vista d'autre Windows 98, HP... et il en ai de meme pour les messageries!
Je souhaite donc envoyer un mail si "Commander" apparait; chose que j'ai réussi a faire , seulement 2 probleme se présente a moi:
Le premier, qui est aussi le plus important est la condition pour envoyer le mail, je n'arrive a l'appliquer que sur une ligne (I12) donc que doit-je modifier sur le code suivant pour quel s'applique sur I4:I9 et I12:I49.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
UserForm1.Show
' rep = InputBox("date")
' Range(Y28) = rep
Sheets("Commande Out XXX").Select
If Range("I12").Value = "" Then
Exit Sub
End If
MailAvecOEouWinMail1
Windows("Gestion Stock Ressorts.xls").Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Voila pour le premier point, le second point, qui est moins important d'un point de vue réalisation est le suivant:
Quand j'envoie mon mail via la fonction ci desus, à la fermeture du fichier Excel, j'aurais bien aimer metre un lien vers le classeur Excel ( il s'agirait d'un fichier mis en réseau). Si cela est trop compliquer ( Systeme d'exploitation diférents, Messagerie différentes...) tant pis il ira lui meme chercher le fichier pour l'ouvrir!
Ci joint le code pour envoyer le mail:
Sub MailAvecOEouWinMail1()
Dim WshShell As Object
Dim Dest As String
Dim Sujt As String
Dim Msg As String
Dim MailProg As String
Dim Env As String, Pos As Integer
Set WshShell = CreateObject("WScript.Shell")
MailProg = "C:\Program Files\Windows Mail\WinMail.exe"
Set WshShell = Nothing
Pos = InStrRev(MailProg, "%")
If Pos > 0 Then
Env = Environ(Mid(MailProg, 2, Pos - 2))
MailProg = Mid(MailProg, Pos + 1)
End If
Dest = "sebastien_seb_5@msn.com"
Sujt = "Test d'envoi avec Excel"
Msg = "Bonjours il faudrait commander pieces dans dossier ci-joint"
Shell Env & MailProg & " /mailurl:mailto:" & Dest & "?subject=" & _
Sujt & "&Body=" & Msg
End
End Sub