Visual Basic - Outlook VBA mover correo a otra carpeta

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Outlook VBA mover correo a otra carpeta

Publicado por Ana (7 intervenciones) el 15/12/2020 10:22:07
Hola,
Estoy intentando crear una macro desde VBA Outllook para mover los correos de mi Bandeja de Entrada con "X" palabra en el asunto a otra carpeta llamada REVISAR. Alguna sugerencia? No he encontrado demasiada información sobre esto, solo cómo mover el contenido completo de una carpeta a otra, pero nada sobre cómo crear filtros y mover los correos.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Outlook VBA mover correo a otra carpeta

Publicado por Andres Leonardo (1798 intervenciones) el 15/12/2020 14:38:27
pero en vez de eso puedes hacer un REGLA de mensaje.

ya eso lo hace Outlook sin programar

Si lo quieres aun asi hacer con VBA deberas revisar el contenido de la carpeta de outlook. y luego revisar los titulos luego mover



SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Outlook VBA mover correo a otra carpeta

Publicado por Ana (7 intervenciones) el 15/12/2020 15:30:31
Gracias, Andrés.
Intento aprender a hacerlo con VBA.
Entiendo lo que dices pero ni idea de cómo escribirlo. Algún manual donde consultarlo o ver ejemplos? No encontré nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Outlook VBA mover correo a otra carpeta

Publicado por Andres Leonardo (1798 intervenciones) el 15/12/2020 19:05:09
Este codigo desde visual basic, deberias otilizar esta rutina y ver si existe

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Dim i, j As Integer
Dim olapp As Outlook.Application
Dim OLNS As Outlook.NameSpace
Dim OLFolders As Outlook.Folders
Dim olMail As Outlook.MailItem
Dim olMailx As Outlook.Account
 
Dim formulario As Outlook.FormRegion
Dim OLFolder1 As Outlook.MAPIFolder
Dim OLFolder2 As Outlook.MAPIFolder
Dim OLFolder3 As Outlook.MAPIFolder
'Dim OLContact As Outlook.ContactItem
Dim FSO As Scripting.FileSystemObject
Dim correo As String
'SET PARAMETERS
Set FSO = CreateObject("Scripting.FileSystemObject")
Set olapp = New Outlook.Application
Set OLNS = olapp.GetNamespace("MAPI")
Set OLFolders = OLNS.Folders
 
 
h = 9
Fn = App.Path & "\Temp.txt"
For Each OLFolder1 In OLFolders
    If OLFolder1 = "2020" Then
        For i = 1 To OLFolder1.Folders.Count
 
            Set OLFolder2 = OLFolder1.Folders(i)
 
                If OLFolder2 = "XXX" Then  --> Aqui pones el nombte de la carpeta que necesitas buscar
                            For j = 1 To OLFolder2.Items.Count
                             Set olMail = OLFolder2.Items(j)
 
                             With olMail
                                Open Fn For Append As h
                                   msgbox .Subject
                             End With
 
                            Next
 
                End If
 
            Next
    End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Outlook VBA mover correo a otra carpeta

Publicado por Ana (7 intervenciones) el 16/12/2020 10:12:43
Hola, Andrés.

Gracias pero no consigo adaptarlo... No lo entiendo... No encuentro el evento MailItem.Move para pasar el correo a la carpeta X.

Esta es la condición, si el asunto contiene la palabra URGENTE se mueve a la carpeta X:

EsUrgente = Contiene(eSubject, "Urgente", DisableCaseSensitive)

If EsUrgente Then "MOVER EL CORREO A LA CARPETA X"

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar