Cette procédure envoie une plage de données :
A ) sans formule
B ) Sans format
C ) La plage d'origine se retrouve à partir de la cellule A1 dans la feuille du fichier envoyé.
D ) Renomme la feuille et la plage de cellule selon ton application.
E) Enlève les objets de la feuille envoyée,
F) Enlève le code de la feuille envoyée s'il existe
-----------------------
Sub EnvoiPlageDonnéeParCourriel()
Dim Plage As Range, T As Variant, A As Long
Dim Shap As Object, B As Integer
Application.ScreenUpdating = False
With Worksheets('Feuil1')
Set Plage = Worksheets('feuil1').Range('A1:A10')
T = Plage
.Copy
End With
A = Plage.Rows.Count
B = Plage.Columns.Count
With ActiveWorkbook
With .VBProject.VBComponents(ActiveSheet.Name).CodeModule
.deletelines 1, .countoflines
End With
With .ActiveSheet
.Cells.Clear
.Range(Cells(1, 1), Cells(A, B)) = T
For Each Shap In .Shapes
Shap.Select Replace:=False
Next
Selection.Delete
End With
SendKeys '(%{E})', False
.SendMail Recipients:='Destinataire@Serveur', Subject:='Test'
.Close savechanges:=False
End With
Set Plage = Nothing: Set Shap = Nothing
End Sub