Notifications
Clear all

Macro pra abrir em determinada hora

7 Posts
2 Usuários
0 Reactions
1,298 Visualizações
(@vitorhsh)
Posts: 0
New Member
Topic starter
 

Boa Noite Familia,

Gostaria de uma macro para abrir o outlook em uma determinada hora,
porque estou utilizando a função de Regra e para a regra ser executa o outlook
precisa ta aberto gostaria que a macro so abrisse o outlook e

Att Vitor Hugo

 
Postado : 29/08/2017 3:03 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

vitorhsh,

Boa noite!

O código da rotina para abri o Outlook abaixo não é meu. É do Tomás Vásquez. Utilize ele, chamando através de uma pequena rotina, usando a função ON TIME:

Sub ChamarRotinaParaAbrirOutlook()
     'Este exemplo executa my_Procedure daqui a 15 segundos
     Application.OnTime Now + TimeValue("00:00:15"), "AbreOutlook"
End Sub

Sub AbreOutlook()
    Dim Olook As Outlook.Application
    Set Olook = CreateObject("Outlook.Application")
 
    Dim ns As Outlook.Namespace
    Dim Folder As Outlook.MAPIFolder
 
    Set ns = Olook.GetNamespace("MAPI")
    Set Folder = ns.GetDefaultFolder(olFolderInbox)
 
    Olook.Explorers.Add Folder
 
    'faz o que tem que fazer
 
    Olook.Quit
    Set Olook = Nothing
 
End Sub
 
Postado : 29/08/2017 3:31 pm
(@vitorhsh)
Posts: 0
New Member
Topic starter
 

Bom dia Wagner

Obrigado por me ajuda em meu projeto
Nesse caso tenho que coloca o o tempo pra corre ordem decrescente? Ou posso definir uma hora tipo 7hrs ele abre o Outlook sozinho ou tenho que coloca a tempo que falta pra chega em 7 horas?

 
Postado : 30/08/2017 7:15 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

vitorhsh,

Da forma como enviei, teria que colocar o tempo que falta para as 07:00 horas (hora de abrir o Outlook).

Para executar a rotina que abre o Outlook às 07:00 horas, você deve utilizar dessa forma:

Sub ChamarRotinaParaAbrirOutlook()
     'Este exemplo executa AbreOutlook às 07:00:00
     Application.OnTime TimeValue("07:00:00"), "AbreOutlook"
End Sub

Sub AbreOutlook()
    Dim Olook As Outlook.Application
    Set Olook = CreateObject("Outlook.Application")

    Dim ns As Outlook.Namespace
    Dim Folder As Outlook.MAPIFolder

    Set ns = Olook.GetNamespace("MAPI")
    Set Folder = ns.GetDefaultFolder(olFolderInbox)

    Olook.Explorers.Add Folder

    'faz o que tem que fazer

    Olook.Quit
    Set Olook = Nothing

End Sub
 
Postado : 30/08/2017 7:42 am
(@vitorhsh)
Posts: 0
New Member
Topic starter
 

Wagner não to sabendo adaptar essa macro no meu cod, pra baixa o arquivo poderia me ajuda?

Sub Mulheres(Item As MailItem)



Dim OutlookOpened As Boolean
Dim outApp As Outlook.Application
Dim outNs As Outlook.NameSpace
Dim outFolder As Outlook.MAPIFolder
Dim outAttachment As Outlook.Attachment
Dim outItem As Object
Dim outMailItem As Outlook.MailItem
Dim inputDate As String, subjectFilter As String
Dim saveInFolder As String

SendKeys ("{ENTER}")
saveInFolder = "C:2017"
If Right(saveInFolder, 1) <> "" Then saveInFolder = saveInFolder & ""

subjectFilter = "EXER RAP mulheres"

SendKeys ("{ENTER}")

OutlookOpened = False
On Error Resume Next
Set outApp = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
Set outApp = New Outlook.Application
OutlookOpened = True
End If
On Error GoTo 0

If outApp Is Nothing Then
MsgBox "Cannot start Outlook.", vbExclamation
Exit Sub
End If

Set outNs = outApp.GetNamespace("MAPI")
SendKeys ("{ENTER}")

'Set outFolder = outNs.Folders("Personal Folders").Folders("Inbox") 'CHANGE FOLDER AS NEEDED



Set outFolder = outNs.PickFolder 'OR USER SELECTS FOLDER




If Not outFolder Is Nothing Then
For Each outItem In outFolder.Items
If outItem.Class = Outlook.OlObjectClass.olMail Then
Set outMailItem = outItem
If outMailItem.Subject = subjectFilter Then
Debug.Print outMailItem.Subject
For Each outAttachment In outMailItem.Attachments
outAttachment.SaveAsFile saveInFolder & outAttachment.FileName
Next
End If
End If
Next
End If

If OutlookOpened Then outApp.Quit

Set outApp = Nothing

End Sub







 
Postado : 30/08/2017 9:20 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

vitorhsh,

Boa tarde!

Isso aí já é uma outra demanda!

Por gentileza, VOTE positivamente clicando na mãozinha existente ao lado da ferramenta CITAR, encerre esse tópico e abra um outro com a sua nova necessidade que, agora, tem a ver com VBA para Outlook.

 
Postado : 30/08/2017 9:31 am
(@vitorhsh)
Posts: 0
New Member
Topic starter
 

vitorhsh,

Da forma como enviei, teria que colocar o tempo que falta para as 07:00 horas (hora de abrir o Outlook).

Para executar a rotina que abre o Outlook às 07:00 horas, você deve utilizar dessa forma:

Sub ChamarRotinaParaAbrirOutlook()
     'Este exemplo executa AbreOutlook às 07:00:00
     Application.OnTime TimeValue("07:00:00"), "AbreOutlook"
End Sub

Sub AbreOutlook()
    Dim Olook As Outlook.Application
    Set Olook = CreateObject("Outlook.Application")

    Dim ns As Outlook.Namespace
    Dim Folder As Outlook.MAPIFolder

    Set ns = Olook.GetNamespace("MAPI")
    Set Folder = ns.GetDefaultFolder(olFolderInbox)

    Olook.Explorers.Add Folder

    'faz o que tem que fazer

    Olook.Quit
    Set Olook = Nothing

End Sub

para esse cod. funciona do jeito que ta preciso monta ele como ? no excel no outlook?
se eu usa o time no execel funciona mais no outlook não e o cod pra abrir o outlook no excel nao funciona mas no outlook sim

 
Postado : 30/08/2017 10:01 am