• Créez un nouveau classeur avec la sélection.

  • Enregistrez le classeur avant de l’envoyer.

  • Supprimez le fichier de votre disque dur après son envoi.

Il affichera les lignes et les colonnes cachées dans la sélection Toutes les cellules vides en dehors de la sélection sont cachées (voir capture d’écran)

De cette façon, la sélection est toujours en haut de votre feuille

Sub Mail_Selection()

Dim strDate As String

Dim Addr As String

Dim rng As Range

If ActiveWindow.SelectedSheets.Count > 1 Or Selection.Areas.Count > 1 Then Exit Sub

Application.ScreenUpdating = False

Addr = Selection.Address

ActiveSheet.Copy

ActiveSheet.Pictures.Delete

With Cells

.EntireColumn.Hidden = False

.EntireRow.Hidden = False

End With

Range(Addr).Select

Set rng = Selection

Application.GoTo rng, True

With rng.EntireColumn

.Hidden = True

rng(1).EntireRow.SpecialCells(xlVisible).EntireColumn.Clear

rng(1).EntireRow.SpecialCells(xlVisible).EntireColumn.Hidden = True

.Hidden = False

End With

With rng.EntireRow

.Hidden = True

rng(1).EntireColumn.SpecialCells(xlVisible).EntireRow.Clear

rng(1).EntireColumn.SpecialCells(xlVisible).EntireRow.Hidden = True

.Hidden = False

End With

Application.GoTo rng, True

rng.Cells(1).Select

strDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm-ss")

ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name _

& " " & strDate & ".xls"

ActiveWorkbook.SendMail "[email protected]", _

"This is the Subject line"

ActiveWorkbook.ChangeFileAccess xlReadOnly

Kill ActiveWorkbook.FullName

ActiveWorkbook.Close False

Application.ScreenUpdating = True

End Sub