macro mensajes outlook

27/09/2006 - 20:27 por yeryap | Informe spam
Tengo una macro que me importa a excell informacion de los mails que tengo en
la carpeta de entrada, el problema es que me lee los mails de forma aleatoria
(los mete en OLF.Items(i)), no hay alguna forma de que me los ordene por
fecha (posicion 0 fecha menor , posicion n fecha mayor)?? aqui va parte del
codigo...

Dim OLF As Outlook.MAPIFolder, CurrUser As String
Dim EmailItemCount As Integer, i As Integer, EmailCount As Integer

Set OLF = GetObject("",
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Set OLF2 = OLF.Folders("Carpeta2")
EmailItemCount = OLF.Items.Count

i = 0: EmailCount = 0
mails = OLF.Items.Count
While i < mails
i = i + 1
With OLF.Items(i)

EmailCount = EmailCount + 1
asunto = .Subject

..

Utilizo las Referencias
Microsoft Outlook 10.0 Object Library y
Microsoft Outlook View Control

Y ya de paso otra pregunta, no en cuentro en la pagina de microsoft
informacion sobre estas referencias, en plan que me diga las propiedades
(.Date, .Sender????) de los objetos y demás (.subject, .Body, etc.. lo se por
post en internet :s)
mmm... espero haberme explicado bien.

Gracias!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
28/09/2006 - 05:38 | Informe spam
hola, 'anonimo/a' !

... una macro... me importa a excel informacion de los mails que tengo en la carpeta de entrada
el problema es que me lee los mails de forma aleatoria (los mete en OLF.Items(i))
no hay alguna forma de que me los ordene por fecha (posicion 0 fecha menor , posicion n fecha mayor)? [...]
Utilizo las Referencias
Microsoft Outlook 10.0 Object Library y
Microsoft Outlook View Control
Y ya de paso otra pregunta, no en cuentro en la pagina de microsoft informacion sobre estas referencias
en plan que me diga las propiedades (.Date, .Sender????) de los objetos y demas
(.subject, .Body, etc.. lo se por post en internet :s)



1) existe alguna relacion en el orden en que tu macro 'lee' los mails con el orden en que estan en la bandeja de entrada -?-

2) una vez establecidas las referencias en el proyecto de macros...
a) prueba a consultar la ayuda en linea de vba-excel -> {F1} seleccionando algun objeto de la libreria ;)
b) prueba 'desplegando' las opciones disponibles para cada objeto -> al poner el punto luego del mismo ;)
[se supone o se espera que la ayuda 'sensitiva' de la libreria y vba los pongan a tu disposicion] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 yeryap
28/09/2006 - 15:16 | Informe spam
1) No existe ninguna relación, los lee totalmente al azar (primero el quinto,
luego el septimo, lugo el primero, luego en décimo, segundo), aunque
siempre en el mismo orden
2)El desplegable no me lo saca :(. En cuento a la información si me da
información pero no me viene que propiedades tiene
Te adjunto parte de la ayuda que me sale de la propiedad item, pero no me
dice que propiedades tiene (como .subject, body)?????. Tambien te adjunto por
si sirve de algo ayuda sobre GetDefaultFolder, que supongo q será aqui donde
tengo que decir que me los lea de forma ordenada.
Espero que sirve de algo. Muchas gracias
yeray

-Propiedad Items
Vea también Se aplica a Ejemplo Específicos
Devuelve una colección Items como una colección de elementos de Outlook en
la carpeta especificada.
expresión.Items
expresión Requerida. Expresión que devuelve un objeto MAPIFolder.

-Método GetDefaultFolder
Devuelve un objeto MAPIFolder que representa la carpeta predeterminada del
tipo solicitado para el perfil actual (por ejemplo, si obtiene la carpeta
Calendario predeterminada del usuario que está conectado actualmente).

Nota Para devolver una carpeta no predeterminada específica, utilice la
colección Folders.

expresión.GetDefaultFolder(TipoCarpeta)

expresión Requerida. Expresión que devuelve un objeto NameSpace.

FolderType OlDefaultFolders requerido. El tipo de carpeta predeterminada
que se debe devolver.


"Héctor Miguel" wrote:

hola, 'anonimo/a' !

> ... una macro... me importa a excel informacion de los mails que tengo en la carpeta de entrada
> el problema es que me lee los mails de forma aleatoria (los mete en OLF.Items(i))
> no hay alguna forma de que me los ordene por fecha (posicion 0 fecha menor , posicion n fecha mayor)? [...]
> Utilizo las Referencias
> Microsoft Outlook 10.0 Object Library y
> Microsoft Outlook View Control
> Y ya de paso otra pregunta, no en cuentro en la pagina de microsoft informacion sobre estas referencias
> en plan que me diga las propiedades (.Date, .Sender????) de los objetos y demas
> (.subject, .Body, etc.. lo se por post en internet :s)

1) existe alguna relacion en el orden en que tu macro 'lee' los mails con el orden en que estan en la bandeja de entrada -?-

2) una vez establecidas las referencias en el proyecto de macros...
a) prueba a consultar la ayuda en linea de vba-excel -> {F1} seleccionando algun objeto de la libreria ;)
b) prueba 'desplegando' las opciones disponibles para cada objeto -> al poner el punto luego del mismo ;)
[se supone o se espera que la ayuda 'sensitiva' de la libreria y vba los pongan a tu disposicion] -?-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
29/09/2006 - 02:36 | Informe spam
hola, ?

2) El desplegable no me lo saca :(. En cuento a la informacion si me da informacion pero no me viene que propiedades tiene [...]



a) si necesitas 'ver' una lista de objetos/propiedades/metodos/...
prueba desde el explorador de objetos -> atajo de teclado en el editor de vba: {F2}
-> seleccionas la libreria correspondiente, y consultas su listado ;)

b) si necesitas la lista 'sensitiva' [similar a la anterior]...
-> selecciona el objeto/metodo/propiedad/evento/... -> y pusa {mayus}+{F2}
nota: NO 'todas' los listados se muestran para 'todos' los elementos 'seleccionados' EN 'todo momento' :(

-> buscando [en la ayuda en linea desde vba] adapte alguno de los ejemplos :)) prueba con algo +/- como lo siguiente:
agregas una variable [solo por facilidad] y 'ordenas' los mensajes por su fecha de recibido [luego de lo cual]...
ya puedes 'leerlos' sin importar como esten ordenados en la bandeja :))
[solo estoy sustituyendo tu bloque 'While...Wend' por un bucle 'For...Next' -creo seria mas rapido-] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Dim OLF As Outlook.MAPIFolder, CurrUser As String
Dim EmailItemCount As Integer, i As Integer, EmailCount As Integer
Dim OLItems As Outlook.Items
Set OLF = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Set OLItems = OLF.Items
OLItems.Sort "ReceivedTime", False ' cambia a True si los quieres en orden inverso :) '
For i = 1 To OLItems.Count
asunto = OLItems(i).Subject
' ... aqui el resto de tu codigo ;) '
Next
Set OLItems = Nothing
Set OLF = Nothing
Respuesta Responder a este mensaje
#4 Gabriel Raigosa
30/09/2006 - 18:56 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"yeryap" escribió en el mensaje
news:
| Tengo una macro que me importa a excell informacion de los mails que tengo
en
| la carpeta de entrada, el problema es que me lee los mails de forma
aleatoria
| (los mete en OLF.Items(i)), no hay alguna forma de que me los ordene por
| fecha (posicion 0 fecha menor , posicion n fecha mayor)?? aqui va parte
del
| codigo...
|
| Dim OLF As Outlook.MAPIFolder, CurrUser As String
| Dim EmailItemCount As Integer, i As Integer, EmailCount As Integer
|
| Set OLF = GetObject("",
|
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
| Set OLF2 = OLF.Folders("Carpeta2")
| EmailItemCount = OLF.Items.Count
|
| i = 0: EmailCount = 0
| mails = OLF.Items.Count
| While i < mails
| i = i + 1
| With OLF.Items(i)
|
| EmailCount = EmailCount + 1
| asunto = .Subject
|
| ..
|
| Utilizo las Referencias
| Microsoft Outlook 10.0 Object Library y
| Microsoft Outlook View Control
|
| Y ya de paso otra pregunta, no en cuentro en la pagina de microsoft
| informacion sobre estas referencias, en plan que me diga las propiedades
| (.Date, .Sender????) de los objetos y demás (.subject, .Body, etc.. lo se
por
| post en internet :s)
| mmm... espero haberme explicado bien.
|
| Gracias!!
|
Respuesta Responder a este mensaje
#5 yeryap
02/10/2006 - 11:17 | Informe spam
Ok, asi funciona de maravilla! Muchas gracias por la ayuda
yeray

"Héctor Miguel" wrote:

hola, ?

> 2) El desplegable no me lo saca :(. En cuento a la informacion si me da informacion pero no me viene que propiedades tiene [...]

a) si necesitas 'ver' una lista de objetos/propiedades/metodos/...
prueba desde el explorador de objetos -> atajo de teclado en el editor de vba: {F2}
-> seleccionas la libreria correspondiente, y consultas su listado ;)

b) si necesitas la lista 'sensitiva' [similar a la anterior]...
-> selecciona el objeto/metodo/propiedad/evento/... -> y pusa {mayus}+{F2}
nota: NO 'todas' los listados se muestran para 'todos' los elementos 'seleccionados' EN 'todo momento' :(

-> buscando [en la ayuda en linea desde vba] adapte alguno de los ejemplos :)) prueba con algo +/- como lo siguiente:
agregas una variable [solo por facilidad] y 'ordenas' los mensajes por su fecha de recibido [luego de lo cual]...
ya puedes 'leerlos' sin importar como esten ordenados en la bandeja :))
[solo estoy sustituyendo tu bloque 'While...Wend' por un bucle 'For...Next' -creo seria mas rapido-] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Dim OLF As Outlook.MAPIFolder, CurrUser As String
Dim EmailItemCount As Integer, i As Integer, EmailCount As Integer
Dim OLItems As Outlook.Items
Set OLF = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
Set OLItems = OLF.Items
OLItems.Sort "ReceivedTime", False ' cambia a True si los quieres en orden inverso :) '
For i = 1 To OLItems.Count
asunto = OLItems(i).Subject
' ... aqui el resto de tu codigo ;) '
Next
Set OLItems = Nothing
Set OLF = Nothing



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida