Saltar al contenido

Actualización de pantalla excel-outlook


Recommended Posts

publicado

Buen día;

Tengo el siguiente código:

Private Sub CommandButton19_Click()
Application.ScreenUpdating = False
Sheets("Resmar").Visible = True
Call Send_Range_Or_Whole_Worksheet_with_MailEnvelope
Sheets("Resmar").Visible = False
Application.ScreenUpdating = False
End Sub[/CODE]

El cuál me envía a un mail designado cierto rango de una hoja de excel en el cuerpo del correo.

Funciona muy bien el código,, si ven incluyo que no se visualicen las actualizaciones de pantalla, pero sólo funcionan la de Excel, se ve la ejecución en el Outlook.

Se puede incuir algo en el código, para que no se vea la ejecución del Outlook?

Posi sirve de algo dejo también el código que manda el mail:

[CODE]Sub Send_Selection_Or_ActiveSheet_with_MailEnvelope()
'Working in Excel 2002-2013
Dim Sendrng As Range

On Error GoTo StopMacro

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

'Note: if the selection is one cell it will send the whole worksheet
Set Sendrng = Selection
ActiveSheet.Range("A1:M12").Select

'Create the mail and send it
With Sendrng

ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope

' Set the optional introduction field thats adds
' some header text to the email body.
.Introduction = "This is a test mail."

With .Item
.To = "carlos.muniz@fl.com.mx"
.CC = ""
.BCC = ""
.Subject = "My subject"
.Send
End With

End With
End With

StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False
End Sub
Private Sub CommandButton2_Click()
'Advance by one page
iPageNo = MultiPage2.Value + 1
MultiPage2.Pages(iPageNo).Visible = True
MultiPage2.Value = iPageNo
End Sub
Sub Send_Range_Or_Whole_Worksheet_with_MailEnvelope()
'Working in Excel 2002-2013
Dim AWorksheet As Worksheet
Dim Sendrng As Range
Dim rng As Range

On Error GoTo StopMacro

With Application
.Visible = True
.ScreenUpdating = False
.EnableEvents = False
End With

'Fill in the Worksheet/range you want to mail
'Note: if you use one cell it will send the whole worksheet
Set Sendrng = Worksheets("Resmar").Range("A1:M12")

'Remember the activesheet
Set AWorksheet = ActiveSheet

With Sendrng

' Select the worksheet with the range you want to send
.Parent.Select

'Remember the ActiveCell on that worksheet
Set rng = ActiveCell

'Select the range you want to mail
.Select

' Create the mail and send it
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope

' Set the optional introduction field thats adds
' some header text to the email body.
.Introduction = "Resumen MAR"

With .Item
.To = UserForm7.TextBox2.Text & UserForm7.TextBox4.Text
.CC = ""
.BCC = ""
.Subject = "Prueba MAR"
.Send
End With

End With

'select the original ActiveCell
rng.Select
End With

'Activate the sheet that was active before you run the macro
AWorksheet.Select

StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Visible = False
End With
ActiveWorkbook.EnvelopeVisible = False

End Sub[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.