Enregistrer TempFile avant envoi mail
Bonjour!
Avec votre aide, j'ai peu résoudre la presque totalité des défis que me posait mon formulaire
Il me reste un souci :
Il y a différents boutons pour envoyer le formulaire par courriel à des personnes précises. Où ça accroche, c'est que l'usager doit enregistrer le formulaire avant de l'envoyer, sinon, les changements apportés ne sont pas envoyés dans le fichier joint.
Donc, j'aimerais modifier la macro derrière chacun de ces boutons pour qu'un fichier temporaire soit créé avant l'envoi et qu'il soit effacé après l'envoi (l'usager n'a pas à conserver le formulaire sur son poste de travail, s'il veut le faire, il n'aura qu'à utiliser le bouton d'enregistrement.)
La macro a l'air de ça :
Sub Bouton142_Clic()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = "xxxxxx@xxxx.qc.ca"
.CC = ""
.BCC = ""
.Subject = "Formulaire de demande d'imagerie"
.Body = "Bonjour," & Chr(13) & Chr(13) & "Cette demande d'imagerie a été approuvée par les technopédagogues et le suppérieur immédiat du demandeur, veuillez y donner suite SVP." & Chr(13) & Chr(13) & "Merci, et bonne journée!"
.Attachments.Add ActiveWorkbook.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
MsgBox "Le formulaire a été envoyé à xxxxxx@xxxx.qc.ca" & Chr(13) & Chr(13) & "Nous donnerons suite à votre demande."
End SubMerci pour votre aide et votre gentillesse!!
Un exemple avec enregistrement temporaire et suppression (ici en pdf) :
Sub envoi()
Dim messagerie As Object
Dim email As Object
Dim nompdf As String
' création fichier et stockage dans le dossier temporaire du PC
nompdf = Environ("Temp") & "\" & "Consignes"
Sheets("Consignes").ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Set messagerie = CreateObject("Outlook.Application")
Set email = messagerie.CreateItem(0)
With email
' ...
End With
' suppression du fichier temporaire
Kill Environ("Temp") & "\" & "Consignes" & ".pdf"
End SubMerci beaucoup!
J'ai aussi reçu la réponse suivante qui fonctionne très bien :
Sub Bouton139_Clic()
Dim OutApp As Object
Dim OutMail As Object
Dim strFichier As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strFichier = "\FOR01_66.xlsm"
'MsgBox Environ("temp") & strFichier
' On supprime le fichier temporaire s'il existe.
If Dir(Environ("temp") & strFichier) <> "" Then Kill Environ("temp") & strFichier
ActiveWorkbook.SaveAs Environ("temp") & strFichier
On Error Resume Next
With OutMail
.To = "xxxxx@xxxx.qc.ca"
.CC = ""
.BCC = ""
.Subject = "Formulaire de demande d'imagerie"
.Body = "Bonjour," & Chr(13) & Chr(13) & "Veuillez donner suite à cette demande d'imagerie SVP:" & Chr(13) & Chr(13) & "-Approbation par le directeur des affaires institutionnelles et des communications" & Chr(13) & Chr(13) & "-Envoyer le formulaire au technicien en arts graphiques xxxx@xxxx.qc.ca" & Chr(13) & Chr(13) & "Merci, et bonne journée!"
.Attachments.Add Environ("temp") & strFichier
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
MsgBox "Le formulaire a été envoyé à xxxx@xxxx.qc.ca" & Chr(13) & Chr(13) & "Nous donnerons suite à votre demande."
End Sub