Envoi Mail avec fichier
L
Bonjour à tous,
Je vient vers vous à nouveau (précédent problème résolu) car je me trouve devant un autre problème, je doit envoyer un mail avec un fichier .xlsx en appuyant sur un bouton appelé "envoyer" sur ma Feuille "Pannes du Jour", jusque là tout vas bien, là ou les choses se corsent c'est que dans le fichier il ne me faut qu'une plage de cellule (A1:E20) et uniquement si elles contiennent des données tout en sachant que sur ma feuille les deux boutons présents ne doivent pas figurer sur mon fichier .xlsx qui est envoyé et pour le moment ils s'affichent toujours malgré après avoir changer le format de contrôle en "Ne pas déplacer ou dimensionner avec les cellules".
Voici le code que j'utilise:
Private Sub OptionButton3_Click() 'Envoi mail
'
' Mise en forme pour le mail
'
'
Unload Me
With Range("A1:E31")
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Range("E2:E4")
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'-- Envoi du mail
Columns("A:E").Select
Application.CutCopyMode = False
Range("A1").Select
ActiveWindow.DisplayZeros = False
With ActiveSheet.PageSetup
.PrintTitleRows = "A:E"
.PrintTitleColumns = "A:E"
End With
Sheets("Pannes du Jour").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "W:\Services\Exploitation\Voie publique\Pannes\Pannes" & " - " & Range("M4").Value & ".xlsx"
ActiveWorkbook.Close "W:\Services\Exploitation\Voie publique\Pannes\Pannes" & Range("M4").Value & ".xlsx"
'---------------------------------------------------
Fichier = "W:\Services\Exploitation\Voie publique\Pannes\Pannes" & " - " & Range("M4").Value & ".xlsx"
Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "adresse mail"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mot de passe"
.Update
End With
'Construction du contenu de l'email Technique
With cdomsg
.To = "adresse mail, adresse mail"
.From = "adresse mail"
.Subject = Range("M4").Value
.TextBody = ""
.AddAttachment "W:\Services\Exploitation\Voie publique\Pannes\Pannes" & " - " & Range("M4").Value & ".xlsx"
.Send
End With
Rep = MsgBox("Email Expédié", vbOKOnly)
Set cdomsg = Nothing
' Effacement des données après envoi du mail.
Range("A2:A20,C2:E20").ClearContents
End SubMerci d'avance pour votre aide.