Option Explicit
Sub MacroMail()
Dim AccuseReception As Boolean
Dim Sujet As String
Dim ShtSrc As Worksheet, ShtTmp As Worksheet
Dim Ctrl As Shape
' On memorise la feuille active pour plus tard
Set ShtSrc = ActiveSheet
' on copie la feuille source (donc la feuille active) dans une nouvelle feuille en fin de fichier
ShtSrc.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
' on memorise la feuille temporaire (plus facile pour la manipuler ensuite)
Set ShtTmp = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
' on copie/colle valeurs la plage qui nous interesse dans la feuille temporaire
With ShtTmp.Range("A1:AA44")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
AccuseReception = True
Sujet = "Demande de communication de boîte archives auprès ADLA"
'Copie de la feuille temporaire dans un nouveau classeur
ShtTmp.Copy
'Eventuellement on renomme la feuille pour eviter le (2) en fin de nom d'onglet
ActiveSheet.Name = ShtSrc.Name
'Suppresion des boutons de la feuille temporaire
For Each Ctrl In ActiveSheet.Shapes
If Ctrl.FormControlType = xlButtonControl Then
Ctrl.Delete
End If
Next Ctrl
' envoi du mail et fermeture du classeur nouvellement cree (sans l'enregistrer)
ActiveWorkbook.SendMail "", Sujet, AccuseReception
ActiveWorkbook.Close False
'suppression de la feuille temporaire (on desactive, au passage, les messages d'alerte pour ne pas a avoir a confirmer la suppression)
Application.DisplayAlerts = False
ShtTmp.Delete
Application.DisplayAlerts = True
'on reactive la feuille source
ShtSrc.Activate
'on fait un peu de menage dans la memoire
Set ShtTmp = Nothing
Set ShtSrc = Nothing
End Sub