Enviar correos con distintos destinatarios, cuerpos y adjuntos al mismo tiempo (MACROS).

tengo una macro donde utilizo el método siguiente para enviar correos, me sirve cuando envío uno y hasta 2 correos simultáneos (en módulos separados) pero sirve si tengo la hoja de la información visible, cuando esta invisible la hoja solo se envía un correo y el segundo me da error pidiendo depurar esta linea (ActiveWorkbook.EnvelopeVisible = False o true da igual error) .

El punto es que quiero que la macro siempre funcione con la hoja invisible (aplication.visible = false), como hago que salgan los 2 correos en modo aplicación invisible????

el código que uso es este:

ThisWorkbook.Sheets("PAPITAS").Select
ActiveSheet.Range("B2:M30").Select
ActiveWorkbook.EnvelopeVisible = False

.Item.To = "[email protected]
.Item.Subject = "CHANFLES"
.Introduction = "RECORCHOLIS"
.Item.Send

Aprovecho para preguntar que codigo puedo copiar al workbook para que abra OUTLOOK automaticamente al abrir el archivo excel, y si es posible que quede Outlook en segundo plano o al igual que como funciona la instruccion "aplication.visible=false" (que inicia invisible pero permite ver la aplicacion si se hace click de nuevo en el icono del archivo).

3 respuestas

Respuesta
1

listo resuelto! agregue antes de cada correo en el código aplication.visible=true y despues del end with lo volvi a hacer invisible . Aunque igual queda un flash de la pantalla de excel en ese momento que me gustaria quitar. Y aun quiero saber como activo Outlook al abrir el archivo.

Respuesta
1

Para desaparecer el flash intenta lo siguiente:

Antes de esta línea

 aplication.visible=true

Escribe la línea 

Application.ScreenUpdating = False

Ya probé de esa manera, no se porque el flash es más breve si escribo el ScreenUpdating luego del aplication. Visible, adicionalmente reduje el tamaño de mi ventana del libro excel al mínimo posible y arrastre hasta una esquina y guarde y cerré el libro de esa manera, eso hace que cuando ejecuto la macro y es necesario el flash sea casi indetectable. Poco ortodoxo pero funciona.

Para abrir outlook en el evento Open:

Private Sub Workbook_Open()
    Shell "OUTLOOK", vbMinimizedFocus
End Sub

Funciona bien si esta cerrado el outlook pero si ya estaba abierto da este error

Prueba con esto:

    Dim out As Object
    On Error Resume Next
    Set out = GetObject(, "Outlook.application") 'gives error 429 if is not open
    If Err.Number = 429 Then
        Shell "OUTLOOK", vbMinimizedFocus
    End If
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas