Enviar por correo la selección utilizando VBA en Microsoft Excel
-
Cree un nuevo libro de trabajo con la Selección.
-
Guarde el libro antes de enviarlo por correo.
-
Elimine el archivo de su disco duro después de enviarlo.
Mostrará las filas y columnas ocultas en la selección. Todas las celdas vacías fuera de la selección están ocultas (ver captura de pantalla)
De esta forma, la selección está siempre en la parte superior de su hoja
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