OVH Cloud OVH Cloud

outlook+vbscript

1 réponse
Avatar
berthelagrandepatte
Bonjour

Je reviens vers vous suite à un post
http://www.microsoft.com/france/communautes/webnews/France/default.mspx?dg=microsoft.public.fr.scripting&lang=fr&cr=FR&r=98dfe511-106d-4529-ad55-aa80c55dd309

Quelques précisions : Nous n'avons pas de serveur exchange, notre messagerie
est chez un fai et nous utilisons outlook version 2002 sp2. Je constate que
toutes les personnes qui m'ont répondu soupconnaient que j'utilisais du
outlook 2003.
Ceci dit, peut etre que sur cette version les choses sont identiques. J'ai
récuperé un script sur un site qui permet ce que je souhaite faire. Je l'ai
testé sur ma version outlook et l'erreur que je rencontre à la ligne précédée
de 2 etoiles est: "impossible d'éxécuter l'opération, iumpossible de
trouver un objet".
Ma question est ce que je peux executer ce script sur cette version d'oulook
et si oui, d'ou vient l'erreur lors de l'execution de ce script ?

-------------------------------------------------------------------------------------------------'***********************************************
'* Ce script permet de saisir une piece jointe *
'* dans un mail et de la sauvegarder dans un *
* reperoire *
'***********************************************

'---------------------------------
' A modifier
'---------------------------------
Outlook_Archive = "Mailbox - laurent outan"
Outlook_Folder = "Inbox"
Outlook_SubFolder1 = ""
Outlook_SubFolder2 = ""
Outlook_SubFolder3 = ""

Subject_InStr = "BBH MAER DATA FOR BACKTESTING"
Get_All_Files = True
Delete_Mail = False

Target_Folder = "C:\tout\outlook\VBS\"
Target_File_Name = "c:\tout\oulook\xls\TEST.XLS"

Log_File_Long_Name = "C:\tout\outlook\vbs\Outlook.log"

'---------------------------------
' Ne pas modifier
'---------------------------------
Call GetAttachements
Sub GetAttachements() '30
cpt = 0
Set objOutlook = CreateObject("Outlook.Application")
** Set objFolder = objOutlook.GetNamespace("MAPI").Folders(Outlook_Archive)

If Not Log_File_Long_Name = "" Then Set objFSO =
CreateObject("Scripting.FileSystemObject")
If Not Log_File_Long_Name = "" Then Set objLog =
objFSO.CreateTextFile(Log_File_Long_Name)
If Not Log_File_Long_Name = "" Then objLog.WriteLine Now()
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"

On Error Resume Next
For i = 0 To 3
Select Case i
Case 0
If Not Outlook_Folder = "" Then
Set objFolder = objFolder.Folders(Outlook_Folder)
Else
Exit For
End If
Case 1
If Not Outlook_SubFolder1 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder1)
Else
Exit For
End If
Case 2
If Not Outlook_SubFolder2 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder2)
Else
Exit For
End If
Case 3
If Not Outlook_SubFolder3 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder3)
Else
Exit For
End If
End Select
Next

If Not Err.Number = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine "ERROR: Outlook
archive path is not valid:"
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_Archive =" & Chr(9) & Outlook_Archive
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_Folder =" & Chr(9) & Outlook_Folder
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder1 =" & Chr(9) & Outlook_SubFolder1
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder2 =" & Chr(9) & Outlook_SubFolder2
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder3 =" & Chr(9) & Outlook_SubFolder3
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
Exit Sub
End If
On Error GoTo 0

Set objItems = objFolder.Items
For mailIndex = objItems.Count To 1 Step -1
'On Error Resume Next
Set objMailItem = objItems.Item(mailIndex)
If objMailItem.Attachments.Count > 0 Then
If not InStr(1, objMailItem.Subject, Subject_InStr, 1) = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine
objMailItem.Subject

On Error Resume Next
If Get_All_Files Then
For i = 1 To objMailItem.Attachments.Count
Set PJ = objMailItem.Attachments.Item(i)
PJ.SaveAsFile Target_Folder & PJ.DisplayName
If Not Log_File_Long_Name = "" Then objLog.WriteLine
Chr(9) & PJ.DisplayName
cpt = cpt + 1
Next
Else
Set PJ = objMailItem.Attachments.Item(1)
If Target_File_Name = "" Then Target_File_Name =
PJ.DisplayName
PJ.SaveAsFile Target_Folder & Target_File_Name
If Not Log_File_Long_Name = "" Then objLog.WriteLine
Chr(9) & PJ.DisplayName
cpt = cpt + 1
End If
If Not Err.Number = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine "ERROR:
Target path is not valid:"
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
Target_Folder
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
Exit Sub
End If
On Error GoTo 0

If Delete_Mail Then objMailItem.Delete
End If
End If
Next

If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
If Not Log_File_Long_Name = "" Then objLog.WriteLine cpt & "
attachment(s) treated"
End Sub
-----------------------------------------------------------------------------------------------

Merci d'avance

1 réponse

Avatar
F. Dunoyer [MVP]
berthelagrandepatte a exposé le 13/02/2006 :
Bonjour

Je reviens vers vous suite à un post
http://www.microsoft.com/france/communautes/webnews/France/default.mspx?dg=microsoft.public.fr.scripting&lang=fr&cr=FR&r˜dfe511-106d-4529-ad55-aa80c55dd309

Quelques précisions : Nous n'avons pas de serveur exchange, notre messagerie
est chez un fai et nous utilisons outlook version 2002 sp2. Je constate que
toutes les personnes qui m'ont répondu soupconnaient que j'utilisais du
outlook 2003.
Ceci dit, peut etre que sur cette version les choses sont identiques. J'ai
récuperé un script sur un site qui permet ce que je souhaite faire. Je l'ai
testé sur ma version outlook et l'erreur que je rencontre à la ligne précédée
de 2 etoiles est: "impossible d'éxécuter l'opération, iumpossible de
trouver un objet".
Ma question est ce que je peux executer ce script sur cette version d'oulook
et si oui, d'ou vient l'erreur lors de l'execution de ce script ?

Je ne suis pas un expert de ce type de scripts mais a mon avis le

soucis c'est MAPI. c'est le protocole de communication entre outlook et
les serveurs Exchange (ou d'autres serveurs du même type).
Si tu es hébergé chez un FAI tu dois faire du pop, du smtp et peut etre
de l'IMAP mais pas du MAPI.
Je pense que c'est pour ça que le script rale

--
François Dunoyer [MVP Windows Server / Security]
Quelques textes qui m'ont séduit : http://fdunoyer.free.fr/textes.htm
Site perso : http://www.fdunoyer.net