Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2011, 13h32   #1
Membre du Club
 
Inscription : mars 2002
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 224
Points : 55
Points : 55
Par défaut [powershell] Equivalent pour outllook 2003

Bonjour,
J'ai développé un script me permettant de récupérer les informations de chaque archive dans Outlook. Pour cela j'utilise une fonction comprise dans ce morceau de script :

Code :
1
2
3
4
5
6
7
8
 
 
function GetPersoInbox
{
$outlook = New-Object -comObject Outlook.Application
$mailPerso = $outlook.Session.Stores | where { ($_.DisplayName -like 'Boîte aux lettres - Perso)}
return $mailPerso.GetRootFolder().folders | where {($_.Name -like "Boîte de réception")}
}
Or ce script fonctionne avec Outlook 2007 mais pas du tout avec la version 2003 qui renvoi toujours null.

Y a t il un moyen de rendre cette fonction compatible avec les deux versions ?

Merci d'avance
bleuerouge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 21h04   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

C'est normal, Outlook 2003 ne possède pas l'objet $outlook.Session.Stores.
Essayez de remplacer l'objet stores par l'objet folders.

Pas sur non plus qu'il existe GetRootFolder, peut-être une boucle en testant la valeur de folders(index). Je ne suis pas spécialiste PowerShell, mais je vois ces deux problèmes sur Outlook 2003, donc à retraduire en langage powershell.

Citation:
function GetPersoInbox
{
$outlook = New-Object -comObject Outlook.Application
$mailPerso = $outlook.Session.Stores | where { ($_.DisplayName -like 'Boîte aux lettres - Perso)}
return $mailPerso.GetRootFolder().folders | where {($_.Name -like "Boîte de réception")}
}
Cela donnerait quelque chose de ce type à essayer
Code :
1
2
3
4
5
6
function GetPersoInbox
{
$outlook = New-Object -comObject Outlook.Application
$mailPerso = $outlook.Session.Folders | where{ ($_.DisplayName -like 'Boîte aux lettres - Perso)}
return $mailPerso.folders(index) | where {($_.Name -like "Boîte de réception")}
}
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 08h55   #3
Membre du Club
 
Inscription : mars 2002
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 224
Points : 55
Points : 55
Bonjour,
Désolé ça ne marche pas, il semble y avoir un probleme dans le script.
bleuerouge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h45   #4
Membre du Club
 
Inscription : mars 2002
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 224
Points : 55
Points : 55
Y a t il une possibilité de lister les boites aux lettres d'outllok 2003 ? Et ce dans n'importe quel langage ?
bleuerouge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 22h12   #5
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Tu as bien remplacer "index" par un nombre parce qu'en VBA, c'est bien cela normalement.
Ou est-ce qu'il y a une erreur?
car en VBA, j'ai cela qui marche
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Sub list_boite()
Dim mySentbox As Outlook.MAPIFolder
Dim i As Integer
Dim j As Integer
i = 1
For Each mySentbox In Outlook.Session.Folders
    j = 1
    While j <= mySentbox.Folders.Count
        Debug.Print (mySentbox.Folders.Item(j))
        j = j + 1
    Wend
    i = i + 1
Next
 
End Sub
Tu peux peut-être t'en inspirer.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 10h02   #6
Membre du Club
 
Inscription : mars 2002
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 224
Points : 55
Points : 55
Voila j'ai trouvé la bonne formule :

Code :
1
2
3
4
5
6
7
 
function GetPersoInbox
{
$outlook = New-Object -comObject Outlook.Application
$mailPerso = $outlook.Session.Folders | where{ ($_.Name -like 'Boîte aux lettres - Perso)}
return $mailPerso.Folders | where {($_.Name -like "Boîte de réception")}
}
Tout simplement car tout est considéré comme des MAPIFolders.
bleuerouge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h42.


 
 
 
 
Partenaires

Hébergement Web