** 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
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: 22/Noviembre/2007 a las 19:24
efectivamente no encuentro este metodo en outlook
 
te comento lo que esta haciendo la funcion que tu comentas (busca el metodo createObject para más informacion)
 
1º define las variables (sin otorgarles el tipo!!!)
despues crea una instancia (una nueva ventana) del outlook
 
con el call ejecuta la macro (la primera vez que lo veo)
 
despues borra las variables de memoria
 
faltaria el application.quit
 
 
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: 22/Noviembre/2007 a las 19:36
Gracias por contestar.
 
Parecere tonto pero es la primera vez que estoy usando macros en outlook, y tampoco he usado vbs, me podrias orientar un poco en donde coloco este codigo o como se va a ejecutar automaticamente:
 
 
 '##############DEBUT ###############
'By Oliv 29 juin 2007
'Lance une macro dans OUTLOOK
Dim theApp, theNameSpace, theMailItem
Set theApp = WScript.CreateObject("Outlook.Application")
On Error Resume Next
'ici on lance une macro du nom de toto dans Outlook.
Call theApp.Acomoda
Set theApp = Nothing
Set theNameSpace = Nothing
Set theMailItem = Nothing

'##############FIN##############################"
 
 
Por cierto, abri otro hilo en donde quiero detectar mediante codigo la sincronización de carpetas esto con el fin de que me ejecute mi macro cada vez que ocurra. 


Editado por Axl666 - 22/Noviembre/2007 a las 19:42
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: 22/Noviembre/2007 a las 19:49
esta funcion deberías ponerla en otro programa que admita el OnTime (excel por ejemplo)
 
puedes hacer que se ejecute automáticamente y de esta manera te llamara cada 20 minutos a la aplicacion de outlook
 
(respecto a la otra pregunta no he contestado en el hilo poruq no no se...)
 
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: 22/Noviembre/2007 a las 20:06

 

Pero tendria que tener abierto excel para que se ejecutara esa funcion verdad?

voy a probar.

Aunque lo mejor seria que se ejecutara en el mismo outlook.

Y con respecto a lo de la sincronizacion, encontre algo parecido, lo podria ver, es esto:

En este ejemplo de Microsoft Visual Basic o Visual Basic para Aplicaciones (VBA), se muestra la carpeta Bandeja de entrada cuando llega un nuevo mensaje de correo electrónico. El código de ejemplo debe ubicarse en un módulo de clase y es necesario llamar a la rutina Initialize_handler antes de que Microsoft Outlook llame al procedimiento de evento.

Public WithEvents myOlApp As Outlook.Application

Sub Initialize_handler()
    Set myOlApp = CreateObject("Outlook.Application")
End Sub

Private Sub myOlApp_NewMail()
    Dim myExplorers As Outlook.Explorers
    Dim myFolder As Outlook.MAPIFolder
    Dim x As Integer
    Set myExplorers = myOlApp.Explorers
    Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    If myExplorers.Count <> 0 Then
        For x = 1 To myExplorers.Count
            On Error GoTo skipif
            If myExplorers.Item(x).CurrentFolder.Name = "Inbox" Then
                myExplorers.Item(x).Display
                myExplorers.Item(x).Activate
                Exit Sub
            End If
skipif:
        Next x
     End If
     On Error GoTo 0
     myFolder.Display
End Sub

Pero la verdad no se como ejecutarla, saludos

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: 22/Noviembre/2007 a las 20:24
Ya puse de esta forma en Excel.
 
Me envia un error en la linea en rojo, dice que falta un objeto, a que se puede deber?
 

Sub Fun_Startup()

'By Oliv 29 juin 2007
'Lance une macro dans OUTLOOK
Dim theApp As Outlook.Application, theNameSpace, theMailItem
 
'Llama a Ontime
Call Hora
 
Set theApp = WScript.CreateObject("Outlook.Application")

On Error Resume Next
'ici on lance une macro du nom de toto dans Outlook.
Call theApp.Acomoda
Set theApp = Nothing
Set theNameSpace = Nothing
Set theMailItem = Nothing
 
End Sub
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: 22/Noviembre/2007 a las 20:39
mira si tienes la referencia de outlook seleccionada (en VBA menu herramientas/referencia)
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: 22/Noviembre/2007 a las 20:49
ya la seleccione la referencia "Microsoft Outlook 11.0 Object Library" y me sigue mandando que se requiere un objeto.
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: 22/Noviembre/2007 a las 21:23
Al poner lo siguiente Option Explicit, me dice que la variable "WScrip", no se ha definido.
 

Sub Fun_Startup()

'By Oliv 29 juin 2007
'Lance une macro dans OUTLOOK
Dim theApp As Outlook.Application, theNameSpace, theMailItem
 
'Llama a Ontime
Call Hora
 
Set theApp = WScript.CreateObject("Outlook.Application")

On Error Resume Next
'ici on lance une macro du nom de toto dans Outlook.
Call theApp.Acomoda
Set theApp = Nothing
Set theNameSpace = Nothing
Set theMailItem = Nothing
 
End Sub
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: 23/Noviembre/2007 a las 00:52
Ya logre que se ejecutara desde excel.
 
Pero seria mejor que se ejcutara desde el mismo outlook, mediante la sincronización.
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: 23/Noviembre/2007 a las 13:25
después de tantos mensajes....
 
¿puedes hacer un resumen de como lo tienes ahora?
¿cómo quedo el tema de la sincronización?
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: 23/Noviembre/2007 a las 17:41

Ok, te cuento.

En outlook tengo este codigo, los correos que halla llegado 40 min antes de la hora actual los nvia a una carpta denominada "Dr. Cinco".
 
Function Acomoda()

  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 rcp As Outlook.Recipient
  Dim mail As Outlook.MailItem

  Dim myItem As Object
  Dim Lcon01 As Long
  Dim Lcon02 As Long
 
 
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Debug.Print myNameSpace
 
  'Selecciona mi carpetas de mi bandeja de entrada
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
 
  Lcon02 = myInbox.Folders.Count
 
  For Lcon01 = 1 To Lcon02 Step 1
   
   
    'Debug.Print myInbox.Name
    Debug.Print myInbox.Folders(Lcon01).Name
 
  Next
 
  'Set myDestFolder = myInbox.Folders("Dr. Cinco")
 
  'Para poder colocarme en mi otra bandeja
  Set myInbox = myNameSpace.Folders("Buzón: Cesar Rivera Palma")
  Set myDestFolder = myInbox.Folders("Bandeja de entrada")
  Set myDestFolder = myDestFolder.Folders("Cesar")

  Set myItem = myItems.Find("[CreationTime] < '" & Format(DateAdd("n", -40, Now), "dd/mm/yyyy hh:nn AMPM") & "'")

  Debug.Print myItems.Count
  Debug.Print Format(DateAdd("n", -40, Now), "dd/mm/yyyy hh:nn AMPM")
  Lcon01 = 0
 
   

 
  While TypeName(myItem) <> "Nothing"
   
    Lcon01 = Lcon01 + 1
    Debug.Print TypeName(myItem)
    myItem.Move myDestFolder
    Set myItem = myItems.FindNext
    'Debug.Print myItem
   
  Wend
 
 
 
 
End Function
 
En excel tengo estre codigo, que en realidad lo que hace es utlizar la función "Ontime" para que se ejecutar cada cierto tiempo la función que se encuentra en outlook.
 
 
Private Sub Auto_Open()
 
MsgBox "Hola"
 
'Función que ejecuta la el codigo de outlook
Fun
 

End Sub

Sub Hora()

Dim dTime As Date
Dim strFuncion As Variant
dTime = Now + TimeValue("00:05:00")
 
'Para ejecute el codigo cada cierto tiempo
Application.OnTime dTime, "Fun"
 
 

End Sub

Function Fun()

'By Oliv 29 juin 2007
'Lance une macro dans OUTLOOK
Dim theApp As Object, theNameSpace, theMailItem
Dim WScript As Outlook.Application
 
'Ejecuta mi codigo de outlook
Set theApp = CreateObject("Outlook.Application")
On Error Resume Next
 
'ici on lance une macro du nom de toto dans Outlook.
Call theApp.acomoda
Set theApp = Nothing
Set theNameSpace = Nothing
Set theMailItem = Nothing
Hora

End Function
 
 
Por cierto con este codigo puedo ocultar la ventana de "Access" lo podria utilizar tambien para ocultar "Excel".
 
Option Compare Database
Option Explicit
Global Const SW_HIDE = 0
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function apiShowWindow Lib "user32" _
    Alias "ShowWindow" (ByVal hWnd As Long, _
          ByVal nCmdShow As Long) As Long
Function fSetAccessWindow(nCmdShow As Long)
Dim loX  As Long
Dim loForm As Form
        loX = apiShowWindow(hWndAccessApp, nCmdShow)
End Function

 
Y una ultima cosa, como le puedo hacer qu cuando abra outlook me habar automaticamente mi archivo de excel?
 
Y lo de la sincronización todavia no he encontrado nada, pero seguire buscando y por lo mientras lo utilizare de esta forma que te comento, si tu encontraras algo me podrias ayudar.
 
Saludos.
 
 
 


Editado por Axl666 - 23/Noviembre/2007 a las 17:42
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: 23/Noviembre/2007 a las 22:50
Pueden cerrar el hilo, gracias.
Arriba
 Responder Responder Página  <123
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable