** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Otros Productos Microsoft
  Mensajes nuevos Mensajes nuevos RSS - Ayuda en outlook
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoAyuda en outlook

 Responder Responder Página  123>
Autor
Mensaje
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Tema: Ayuda en outlook
    Enviado: 30/Octubre/2007 a las 18:15
Hola que tal.
 
Mi duda es la siguiente, yo cree una regla para que cuando entre en correo de "Corinne Hernandez", me lo envie directamente a una carpeta llamada "Corinne", hasta ahi todo bien.
 
Ahora lo que quiero es que cuando entre el mensaje  de "Corinne Hernandez" quiero que se espera 20 min antes de que lo envie a la carpeta llamada "Corinne", espero me halla podido explicar bien.
 
Y muchas gracias por su ayuda.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 02/Noviembre/2007 a las 12:04
Me parece (estoy casi seguro al 99%) de que outlook no tiene la opcion de "esperar".
 
Lo que si que puedes hacer es invocar a un programa o a un script y en él programar para que se inicie un contador y posteriormente que te mueva el mensaje.
 
Nota: como en esta función deberás comprobar el tiempo del mensaje (por si entra un segundo mensaje posterior) quizás te sale más a cuenta crear una rutina que mueva los elementos si son más antiguos de 20 minutos.... en todo caso dependerá de la cantidad de mensajes que tienes para  procesar.
 
Nota2: supongo que el querer esperar 20 minutos es para saber que has recibido un mensaje. En este caso quizás lo mejor es crear un filtro para que te abra una ventana, te avise con una música o algo parecido.
 
además en nuevo mensaje, al no estar leído, quedará marcado en "negrita" por lo que podrás localizarlo.
 
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 06/Noviembre/2007 a las 17:20
Gracias por responder.
 
Los 20 minutos se aplicaria a cualquier mensaje que entre.
 
Tienen por ahi un ejemplo que me sirva de ayuda.
 
O siendo mas especifico que instruccion haria que me monitoriara uw ha entrado un elemnteo nuevo mediante codigo.
 
 Y nuevamanete gracias por responder.


Editado por Axl666 - 06/Noviembre/2007 a las 18:17
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 07/Noviembre/2007 a las 01:36
no se si me he sabido explicar.....
 
vamos por partes.... entiendo que sabes crear las "normas y alertas" (rules and alerts - disculpa que no se como se llaman en castellano) y por ello no entro en el tema.
 
para, a través de código, mover los mensajes hay varios hilos que tocan el tema.... sobretodo desde aplicativos diferentes como puede ser hacerlo desde access... (busca en el foro)
 
lo que yo te proponia era que crearas tu própia función, comentando que, o bien pasas el ID del mensaje a controlar, o bien la funcion debe controlar la fecha de creacion....
 
Dependiendo del volumen de los datos, quizás lo más sencillo es basarte en el "mover" que te comentaba antes dentro de un programa que este funcionando permanentemente....
 
pero ello dependerá mucho de que desees hacer, de como deseas hacerlo, de la cantidad de datos y de la precisión del tiempo (que pasa si en vez de 20 minutos tarda 45????)
 
espero tus comentarios.... (pero primero busca los mensajes que te estoy referiendo...)
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 07/Noviembre/2007 a las 02:01
Ok.
 
Deja te comento primero para que quiero que se retrasen mis mensajes 20 minutos.
 
Lo que pasa es que mi jefa tiene una black berry, y para que el mensaje entre en su black berry debe permanecer por lo menos 20 minutos en el servidor, y por seguridad no quiere que sus mensajes se queden el srvidor.
 
Y despues de esos 20 minutos se almacenen automaticamente en carpetas, cualquier mensaje que entre.
 
Espero me halla explicado bien.
 
Encontre este codigo, pero solo funciona para una sola persona.
Como le puedo hacer para todos mis mensajes entrantes?
 
Sub MoveItems()
  Dim myOlApp As New Outlook.Application
  Dim myNameSpace As Outlook.NameSpace
  Dim myInbox As Outlook.MAPIFolder
  Dim myDestFolder As Outlook.MAPIFolder
  Dim myItems As Outlook.Items
  Dim myItem As Object
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
  Set myDestFolder = myInbox.Folders("Personal Mail")
  Set myItem = myItems.Find("[SenderName] = 'Dan Wilson'")
  While TypeName(myItem) <> "Nothing"
    myItem.Move myDestFolder
    Set myItem = myItems.FindNext
  Wend
End Sub
 
 
 
Gracias por responder.
 
 


Editado por Axl666 - 07/Noviembre/2007 a las 02:11
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 07/Noviembre/2007 a las 02:16
vale... vamos perfilando...
 
dos puntos a tener en cuenta:
 
1- te comentaba que existen varios hilos en el foro que hace lo mismo que este ejemplo tuyo, solo que comentado y ampliado (busca Jordi-Albert como usuario y "Folders" como palabra)
2- mira si tienes la posibilidad de enviar el mensaje directamente a la black berry... te ahorrarás muchos problemas.
 
a partir da ahí continuamos...
 
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 07/Noviembre/2007 a las 02:46
Encontre este codigo en el hilo que encontre:
 
Private Sub CargaAdjuntosOutlook2()
Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim Item As Object
Dim Atmt As Attachment
Dim SubFolderE As MAPIFolder
Dim SubFolderP As MAPIFolder
Dim FileName As String
Set ns = GetNamespace("MAPI")
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
Set SubFolderE = Inbox.Folders("PEDIDOS_ENTRADOS")
Set SubFolderP = Inbox.Folders("PEDIDOS_PROCESADOS")
    If SubFolderE.Items.Count = 0 Then
    MsgBox "NO HAY FICHEROS ADJUNTOS PENDIENTES EN LA CARPETA PEDIDOS.", vbInformation, _
           "Nothing Found"
    Exit Sub
    End If
 
    For Each Item In SubFolderE.Items
        For Each Atmt In Item.Attachments
           
'Copio en la carpeta indicada todos los archivos adjuntos al correo
            FileName = "C:\TOZZI\PEDIDOS_OUTLOOK\" & Atmt.FileName
            Atmt.SaveAsFile FileName
        Next Atmt
       
'Voy a la rutina que actualiza los datos de la hoja excel a la BD.
        Call Actualizar
       
'Elimino el archivo excel que se ha extraido del correo puesto que ya esta procesado
        'Si hubiera algun otro adjunto este se mantien solo anula los Pedidos*.xls

        Kill "C:\TOZZI\PEDIDOS_OUTLOOK\Pedidos*.xls"
       
'Muevo a la carpeta de Pedidos Procesadosel correo que ya se trato, para no encontrarlo en la proxima entra del programa.
        SubFolderE.Items.MOVE SubFolderP
    Next Item
End Sub
 
Y con relacionado con la black berry, solo se envia una copia del mensaje a la black berry y no se borra el correo del servidor de ahi la inquietud de enviar los mensajes a unas carpetas.
 
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 03:14
Este codigo me guarda los correos en una carpeta establecida, ahora como le hago para que el codigo se ejecuta cada hora o cada 6 horas autmoticamente?
 

 
   Dim myOlApp As New Outlook.Application
  Dim myNameSpace As Outlook.NameSpace
  Dim myInbox As Outlook.MAPIFolder
  Dim myDestFolder As Outlook.MAPIFolder
  Dim myItems As Outlook.Items
  Dim myItem As Object
 
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
  Set myDestFolder = myInbox.Folders("orsonello")
  Set myItem = myItems.Find("[LastModificationTime] <'" & "Lunes" & " " & Format(DateAdd("n", -20, Now), "ddddd h:nn AMPM") & "'")
  Debug.Print myItems.Count
  While TypeName(myItem) <> "Nothing"
    myItem.Move myDestFolder
    Set myItem = myItems.FindNext
  Wend

 

 Espero me puedan ayudaar, saludos.


Editado por Axl666 - 13/Noviembre/2007 a las 03:54
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 13:21
mirate la funcion Ontime
 
con ella puedes hacer que se ejecute una programa o funcion cada x tiempo
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 17:04

Una vez mas gracias, deja la busco.

Si tengo una duda despues te comento.
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 17:06
No me funciona el filtro (marcado con rojo), a que se puede deber?
 
  Dim myOlApp As New Outlook.Application
  Dim myNameSpace As Outlook.NameSpace
  Dim myInbox As Outlook.MAPIFolder
  Dim myDestFolder As Outlook.MAPIFolder
  Dim myItems As Outlook.Items
  Dim myItem As Object
 
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
  Set myDestFolder = myInbox.Folders("orsonello")
  Set myItem = myItems.Find("[LastModificationTime] <'" & "Lunes" & " " & Format(DateAdd("n", -20, Now), "ddddd h:nn AMPM") & "'")
  Debug.Print myItems.Count
  While TypeName(myItem) <> "Nothing"
    myItem.Move myDestFolder
    Set myItem = myItems.FindNext
  Wend

Gracias por contestar.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 17:31
prueba con:
 
 
Set myItem = myItems.Restrict("[CreationTime] <'" & Format(DateAdd("n", -20, Now), "dd/mm/yyyy hh:nn:ss AMPM") & "'")
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 13/Noviembre/2007 a las 22:08

Gracias por contestar, deja pruebo.

Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 01:07

Parece ser que ya funciona el codigo.

Pero la Funcion (Ontime) que me comentas no la encuentro.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 10:11
Publicado originalmente por Axl666 Axl666 escribió:

Pero la Funcion (Ontime) que me comentas no la encuentro.
 
se escribe dentro de VBA Ontime y se aprieta F1
 
como pista (y sacada de la ayuda):
 
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
Arriba
 Responder Responder Página  123>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable