Macro Outlook Recherche avancée

Le
cmoi
Bonjour,

Outlook 2003

J'ai des difficultés à créer une macro qui ouvre la boîte de recherche
avancée avec le positionnement suivant:
Recherche dans 'Dossiers personnels' et dans 'Champs Texte souvent utilisés'

Apparemment, il n'existe pas de possibilité d'enregistrer une macro comme
avec d'autres applications MS
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #22197951
Bonjour,

Outlook 2003

J'ai des difficultés à créer une macro qui ouvre la boîte de recherche avancée avec le
positionnement suivant:
Recherche dans 'Dossiers personnels' et dans 'Champs Texte souvent utilisés'



Vous en êtes où dans votre macro.

Apparemment, il n'existe pas de possibilité d'enregistrer une macro comme avec d'autres
applications MS



Hélas

--
A+
cmoi
Le #22198501
Merci Geo.
En fait, je n'arrive à rien. Je voudrais:
1 - ouvrir la boîte de dialogue 'Recherche avancée'
2 - Forcer certains champs comme le dossier de recherche, l'élément dans
lequel s'effectue la recherche (mails par exemple), les champs dans lesquels
le texte recherché doit figurer (exemple 'champs texte souvent utilisés')

J'ai fouillé sans succès dans l'aide avec Display et CommandBars.



"Geo"
Bonjour,

Outlook 2003

J'ai des difficultés à créer une macro qui ouvre la boîte de recherche
avancée avec le positionnement suivant:
Recherche dans 'Dossiers personnels' et dans 'Champs Texte souvent
utilisés'



Vous en êtes où dans votre macro.

Apparemment, il n'existe pas de possibilité d'enregistrer une macro comme
avec d'autres applications MS



Hélas

--
A+


Geo
Le #22199751
Bonsoir
Je n'ai pas trop le temps ce soir, et je ne sais pas ce que vous avez
comme aide avec 2003.
A tout hasard je vous recopie une partie de l'aide 2007, ça vous
donnera peut-être une piste.
--------------------------------------------
Exemple

Cet exemple, en Visual Basic pour Applications (VBA), utilise la
méthode GetDefaultFolder pour renvoyer l'objet Folder qui représente le
dossier Calendrier par défaut de l'utilisateur actif. Il utilise
ensuite les méthodes Find et FindNext pour trouver tous les rendez-vous
de ce jour et les afficher dans une série de messages.

Visual Basic pour Applications
Sub DemoFindNext()
Dim myOlApp AsNew Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim tdystart As Date
Dim tdyend As Date
Dim myAppointments As Outlook.Items
Dim currentAppointment As Outlook.AppointmentItem

Set myNameSpace = myOlApp.GetNamespace("MAPI")
tdystart = VBA.Format(Now, "Short Date")
tdyend = VBA.Format(Now + 1, "Short Date")
Set myAppointments =
myNameSpace.GetDefaultFolder(olFolderCalendar).Items
Set currentAppointment = myAppointments.Find("[Start] >= """ &
tdystart & """ and [Start] <= """ & tdyend & """")
While TypeName(currentAppointment) <> "Nothing"
MsgBox currentAppointment.Subject
Set currentAppointment = myAppointments.FindNext
Wend
End Sub

--
A+
cmoi
Le #22202741
J'ai essayé le programme suivant recopié dans l'aide vba de Outlook:

Option Explicit

Public blnSearchComp As Boolean

Private Sub Application_AdvancedSearchComplete(ByVal SearchObject As Search)
MsgBox "The AdvancedSearchComplete Event fired for " & SearchObject.Tag
& " and the scope was " & SearchObject.Scope
blnSearchComp = True
End Sub

Sub TestAdvancedSearchComplete()
Dim objSch As Outlook.Search
Dim rsts As Outlook.Results
Dim i As Integer
blnSearchComp = False
Const strF1 As String = "urn:schemas:mailheader:subject = 'Test'"
'Const strS1 As String = "root" 'Dossier non reconnu'
'Const strS1 As String = "xx" ' Ne marche pas car dossier inexistant
Const strS1 As String = "Inbox" 'Marche mais rsts.count = 0
'Const strS1 As String = "'Boîte de réception'" 'Marche mais rsts.count
= 0
'Const strS1 As String = "'Dossiers personnels'" 'Dossier non reconnu
'Const strS1 As String = "Emploi" 'Marche mais rsts.count = 0
Set objSch = _
Application.AdvancedSearch(Scope:=strS1, Filter:=strF1,
SearchSubFolders:=True, Tag:="SubjectSearch")
While blnSearchComp = False
DoEvents
Wend
Set rsts = objSch.Results
MsgBox rsts.Count
For i = 1 To rsts.Count
MsgBox rsts.Item(i).SenderName
Next
End Sub


J'ai fait plusieurs essais en changeant la constante strS1. Je rencontre
deux problèmes:
1-Il ne reconnaît pas le dossier 'Dossiers personnels' et renvoie un message
d'erreur : Erreur d'exécution '-2147024809 (80070057)': Impossible de
terminer l'opération. Une ou plusieurs valeurs de paramètres ne sont pas
valides. (même message lorsque le dossier est inexistant)
2-Lorsque les dossiers sont reconnus, aucun message n'est trouvé, alors que
la recherche effectuée avec l'outil 'Recherche avancée' en renvoie
plusieurs.

cmoi


"Geo"
Bonsoir
Je n'ai pas trop le temps ce soir, et je ne sais pas ce que vous avez
comme aide avec 2003.
A tout hasard je vous recopie une partie de l'aide 2007, ça vous donnera
peut-être une piste.
--------------------------------------------
Exemple

Cet exemple, en Visual Basic pour Applications (VBA), utilise la méthode
GetDefaultFolder pour renvoyer l'objet Folder qui représente le dossier
Calendrier par défaut de l'utilisateur actif. Il utilise ensuite les
méthodes Find et FindNext pour trouver tous les rendez-vous de ce jour et
les afficher dans une série de messages.

Visual Basic pour Applications
Sub DemoFindNext()
Dim myOlApp AsNew Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim tdystart As Date
Dim tdyend As Date
Dim myAppointments As Outlook.Items
Dim currentAppointment As Outlook.AppointmentItem

Set myNameSpace = myOlApp.GetNamespace("MAPI")
tdystart = VBA.Format(Now, "Short Date")
tdyend = VBA.Format(Now + 1, "Short Date")
Set myAppointments = myNameSpace.GetDefaultFolder(olFolderCalendar).Items
Set currentAppointment = myAppointments.Find("[Start] >= """ & tdystart &
""" and [Start] <= """ & tdyend & """")
While TypeName(currentAppointment) <> "Nothing"
MsgBox currentAppointment.Subject
Set currentAppointment = myAppointments.FindNext
Wend
End Sub

--
A+


Geo
Le #22204701
Bonsoir

pas simple en effet

J'ai fait plusieurs essais en changeant la constante strS1. Je rencontre deux
problèmes:
1-Il ne reconnaît pas le dossier 'Dossiers personnels' et renvoie un message d'erreur :
Erreur d'exécution '-2147024809 (80070057)': Impossible de terminer l'opération. Une ou
plusieurs valeurs de paramètres ne sont pas valides. (même message lorsque le dossier
est inexistant)



Pour Dossiers personnel essayez :
"'\Dossiers personnels'"
Même chose, pour d'autres dossiers de même niveau, c'est à dire non
inclus dans "Dossiers personnels".
Par exemple j'ai : "'\Dossiers d''archivage n 2'"
Notez qu'il faut doubler l'apostrophe dans le texte.

2-Lorsque les dossiers sont reconnus, aucun message n'est trouvé, alors que la
recherche effectuée avec l'outil 'Recherche avancée' en renvoie plusieurs.



Par contre ça fonctionne chez moi.
Votre msgbox est un peu brutal, mais je suppose que vous y passez.

--
A+
Publicité
Poster une réponse
Anonyme