Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir un message outlook avec excel

23 réponses
Avatar
Richard
Bonjour

je souhaite faire un lien vers des messages outlook office 2003
je fais un copier coller du libellé des messages outlook dans des cellules
d' excel

Comment transformer ce libellé en lien vers outlook pour ouvrir le message
outlook directement à partir d'excel

Principe identique à un lien vers un fichier word

Attention ce message se trouve dans un répertoire perso pas dans les
messages reçus

10 réponses

1 2 3
Avatar
Daniel.C
Question intéressante... Et pour chaque fichier, comment sait-on quel
fichier contient quel dossier ?
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1
Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel








Avatar
Daniel.C
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1
Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel








Avatar
Daniel.C
Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1 Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel









Avatar
Richard
je n'ai pas bien compris le:
" En supposant que le dossier et le fichier pst soit en colonne B"

je pense que cela vient de m'on explication donc je reprends:
Sur mon disque D:
J'ai des dossiers :(sens dossier Explorateur)
Dossier 1
Dossier 2
Dans ces dosssiers j'ai des fichiers xxx.pst
Dossier 1: fichier a. pst, fichier b. pst, etc
Dossier 2: fichier a. pst, fichier b. pst, etc

Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
Fichier 1.pst dossier aa, dossier bb, etc

je vais donc copier sur ma feuille le libellé d'un message qui vient de:
Dossier 1 > fichier a. pst > dossier aa message 1
Dossier 2 > fichier b. pst > dossier bb message 2

Voici ci dessous des exemples pour j'espére étre plus claire

j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"

je suis un peux perdu

"Daniel.C" a écrit :

Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
> En supposant que le dossier du fichier pst soit en colonne B :
>
> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
> Boolean)
> Dim OlApp As Object, NS As Object, Dossier As Object
> Dim OlExp As Object
> Dim i As Object
> Cancel = True
> Set OlApp = CreateObject("OutLook.Application")
> Set fs = CreateObject("Scripting.FileSystemObject")
> Set OlExp = OlApp.ActiveExplorer
> Set NS = OlApp.GetNamespace("MAPI")
> NS.AddStore Target.Offset(, 1).Value
> Set objFolder = NS.Folders.Item(NS.Folders.Count)
> Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
> For Each i In Dossier.Items
> If i.Subject = Target.Value Then
> i.display
> End If
> Next i
> NS.RemoveStore objFolder
> End Sub
>
> Fais bien une sauvegarde de ton fichier pst courant avant de tester.
> Daniel
>
>> je confirme cela fonctionne dans le répertoire test
>> Par contre le besoin final est le suivant
>>
>> J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires
>>
>> d:/ Dossier 1.pst
>> Rep 1 Rep 2
>> Dossier 2.pst
>> Rep 1
>> Rep 2
>>
>> le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
>> des répertoires
>>
>> j'espere qu'une solution est possible.
>>
>> "" a écrit :
>>
>>> Bonjour Daniel,
>>>
>>> Oui, qd Richard disait ne pas y arriver,
>>> ....j'avais pensé à cela.
>>> Même en session, il faudrait être autorisé via une fenêtre TSE ou
>>> autre
>>> pour être sur le serveur depuis le poste et pouvoir accèder ce
>>> répertoire.
>>> Ce que peu d'administrateurs réseau accepteraient , il me semble...
>>> Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
>>> ça roule.
>>>
>>> @+
>>>
>>> --
>>> lSteph
>>>
>>> On 12 mar, 16:08, Daniel.C wrote:
>>>>> le .pst ou la boite .. si elle est sur le serveur et que seul
>>>>> l'administrateur réseau à cet accès!?
>>>>
>>>> Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
>>>> n'y as pas accès jusquà ce que tu ouvres une session ?
>>>> Daniel
>>>





Avatar
Daniel.C
Bonjour.
Si en A1 j'ai message 1, il faut que je sache le nom et le chemin du
fichier pst correspondant, ce que tu as indiqué par :
Dossier 1 > fichier a. pst > dossier aa.
Donc, je dois pouvoir récupérer :
- Dossier 1
- fichier a. pst
- dossier aa
Pour tester, j'ai mis l'intitulé du message en A1 et le nom et les
chemin du fichier pst en B1 :
e:sav81001.pst
Daniel

je n'ai pas bien compris le:
" En supposant que le dossier et le fichier pst soit en colonne B"

je pense que cela vient de m'on explication donc je reprends:
Sur mon disque D:
J'ai des dossiers :(sens dossier Explorateur)
Dossier 1
Dossier 2
Dans ces dosssiers j'ai des fichiers xxx.pst
Dossier 1: fichier a. pst, fichier b. pst, etc
Dossier 2: fichier a. pst, fichier b. pst, etc

Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
Fichier 1.pst dossier aa, dossier bb, etc

je vais donc copier sur ma feuille le libellé d'un message qui vient de:
Dossier 1 > fichier a. pst > dossier aa message 1
Dossier 2 > fichier b. pst > dossier bb message 2

Voici ci dessous des exemples pour j'espére étre plus claire

j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"

je suis un peux perdu

"Daniel.C" a écrit :

Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1 Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel
















Avatar
Daniel.C
La macro fournie pré-suppose que les fichiers pst ne sont pas chargés
dans Outlook. Si ce n'est pas le cas, dis-le.
Daniel

je n'ai pas bien compris le:
" En supposant que le dossier et le fichier pst soit en colonne B"

je pense que cela vient de m'on explication donc je reprends:
Sur mon disque D:
J'ai des dossiers :(sens dossier Explorateur)
Dossier 1
Dossier 2
Dans ces dosssiers j'ai des fichiers xxx.pst
Dossier 1: fichier a. pst, fichier b. pst, etc
Dossier 2: fichier a. pst, fichier b. pst, etc

Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
Fichier 1.pst dossier aa, dossier bb, etc

je vais donc copier sur ma feuille le libellé d'un message qui vient de:
Dossier 1 > fichier a. pst > dossier aa message 1
Dossier 2 > fichier b. pst > dossier bb message 2

Voici ci dessous des exemples pour j'espére étre plus claire

j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"

je suis un peux perdu

"Daniel.C" a écrit :

Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1 Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel
















Avatar
Richard
pour répondre ta question:
oui ma messagerie est ouverte j'ai donc accé à mes répertoires et à mes
messages.
j'ai encore un plantage
A chaque test je ferme mon fichier excel pour bien repartir sur un
programme propre
Je pense que de base je dois bien click colonne A

Que la messagerie soit ouverte ou fermé j'ai les résultats suivants
j'ai fait les tests suivants messagerie ouverte et fermé

Si je double click sur un libellé de la colonne A j'ai un plantage à la ligne
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
Le terme "test" me surprend est il toujours d'actualité

Si je double click sur un libellé de la colonne B j'ai un plantage à la ligne
NS.AddStore Target.Offset(, 1).Value




"Daniel.C" a écrit :

La macro fournie pré-suppose que les fichiers pst ne sont pas chargés
dans Outlook. Si ce n'est pas le cas, dis-le.
Daniel

> je n'ai pas bien compris le:
> " En supposant que le dossier et le fichier pst soit en colonne B"
>
> je pense que cela vient de m'on explication donc je reprends:
> Sur mon disque D:
> J'ai des dossiers :(sens dossier Explorateur)
> Dossier 1
> Dossier 2
> Dans ces dosssiers j'ai des fichiers xxx.pst
> Dossier 1: fichier a. pst, fichier b. pst, etc
> Dossier 2: fichier a. pst, fichier b. pst, etc
>
> Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
> Fichier 1.pst dossier aa, dossier bb, etc
>
> je vais donc copier sur ma feuille le libellé d'un message qui vient de:
> Dossier 1 > fichier a. pst > dossier aa message 1
> Dossier 2 > fichier b. pst > dossier bb message 2
>
> Voici ci dessous des exemples pour j'espére étre plus claire
>
> j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
> Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"
>
> je suis un peux perdu
>
> "Daniel.C" a écrit :
>
>> Oups.
>> Lire :
>> En supposant que le dossier et le fichier pst soit en colonne B
>> au lieu de :
>> En supposant que le dossier du fichier pst soit en colonne B
>> Daniel
>>> En supposant que le dossier du fichier pst soit en colonne B :
>>>
>>> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
>>> Boolean)
>>> Dim OlApp As Object, NS As Object, Dossier As Object
>>> Dim OlExp As Object
>>> Dim i As Object
>>> Cancel = True
>>> Set OlApp = CreateObject("OutLook.Application")
>>> Set fs = CreateObject("Scripting.FileSystemObject")
>>> Set OlExp = OlApp.ActiveExplorer
>>> Set NS = OlApp.GetNamespace("MAPI")
>>> NS.AddStore Target.Offset(, 1).Value
>>> Set objFolder = NS.Folders.Item(NS.Folders.Count)
>>> Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
>>> For Each i In Dossier.Items
>>> If i.Subject = Target.Value Then
>>> i.display
>>> End If
>>> Next i
>>> NS.RemoveStore objFolder
>>> End Sub
>>>
>>> Fais bien une sauvegarde de ton fichier pst courant avant de tester.
>>> Daniel
>>>
>>>> je confirme cela fonctionne dans le répertoire test
>>>> Par contre le besoin final est le suivant
>>>>
>>>> J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires
>>>>
>>>> d:/ Dossier 1.pst
>>>> Rep 1 Rep 2
>>>> Dossier 2.pst
>>>> Rep 1
>>>> Rep 2
>>>>
>>>> le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe lequel
>>>> des répertoires
>>>>
>>>> j'espere qu'une solution est possible.
>>>>
>>>> "" a écrit :
>>>>
>>>>> Bonjour Daniel,
>>>>>
>>>>> Oui, qd Richard disait ne pas y arriver,
>>>>> ....j'avais pensé à cela.
>>>>> Même en session, il faudrait être autorisé via une fenêtre TSE ou
>>>>> autre
>>>>> pour être sur le serveur depuis le poste et pouvoir accèder ce
>>>>> répertoire.
>>>>> Ce que peu d'administrateurs réseau accepteraient , il me semble...
>>>>> Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
>>>>> ça roule.
>>>>>
>>>>> @+
>>>>>
>>>>> --
>>>>> lSteph
>>>>>
>>>>> On 12 mar, 16:08, Daniel.C wrote:
>>>>>>> le .pst ou la boite .. si elle est sur le serveur et que seul
>>>>>>> l'administrateur réseau à cet accès!?
>>>>>>
>>>>>> Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement tu
>>>>>> n'y as pas accès jusquà ce que tu ouvres une session ?
>>>>>> Daniel
>>>>>
>>
>>
>>





Avatar
Daniel.C
Bonjour.
Ca change un peu la donne :
1. on ne connait ni le fichier pst, ni le dossier dans lequel se trouve
le message (implicitement, il n'y a pas de doublons).
2. le fichier pst est déjà ouvert dans Outlook (C'est à dire qu'il
figure dans la liste "Fichier", "Gestion de fichiers de données".
Dans cette cofiguration, le code suivant doit faire l'affaire, sauf si
une instruction est particulière à XL2007 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object, j As Integer, k As Integer
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
For j = 1 To NS.Folders.Count
Set f = NS.Folders(j)
For k = 1 To NS.Folders(j).Folders.Count
Set Dossier = NS.Folders(j).Folders(k)
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
Next k
Next j
End Sub

Daniel

pour répondre ta question:
oui ma messagerie est ouverte j'ai donc accé à mes répertoires et à mes
messages.
j'ai encore un plantage
A chaque test je ferme mon fichier excel pour bien repartir sur un
programme propre
Je pense que de base je dois bien click colonne A

Que la messagerie soit ouverte ou fermé j'ai les résultats suivants
j'ai fait les tests suivants messagerie ouverte et fermé

Si je double click sur un libellé de la colonne A j'ai un plantage à la ligne
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
Le terme "test" me surprend est il toujours d'actualité

Si je double click sur un libellé de la colonne B j'ai un plantage à la ligne
NS.AddStore Target.Offset(, 1).Value




"Daniel.C" a écrit :

La macro fournie pré-suppose que les fichiers pst ne sont pas chargés
dans Outlook. Si ce n'est pas le cas, dis-le.
Daniel

je n'ai pas bien compris le:
" En supposant que le dossier et le fichier pst soit en colonne B"

je pense que cela vient de m'on explication donc je reprends:
Sur mon disque D:
J'ai des dossiers :(sens dossier Explorateur)
Dossier 1
Dossier 2
Dans ces dosssiers j'ai des fichiers xxx.pst
Dossier 1: fichier a. pst, fichier b. pst, etc
Dossier 2: fichier a. pst, fichier b. pst, etc

Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
Fichier 1.pst dossier aa, dossier bb, etc

je vais donc copier sur ma feuille le libellé d'un message qui vient de:
Dossier 1 > fichier a. pst > dossier aa message 1
Dossier 2 > fichier b. pst > dossier bb message 2

Voici ci dessous des exemples pour j'espére étre plus claire

j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"

je suis un peux perdu

"Daniel.C" a écrit :

Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires

d:/ Dossier 1.pst
Rep 1 Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe
lequel des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement
tu n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel























Avatar
Richard
J'ai fait mon double click sur un libellé à la fin de l'execution rien ne se
passe
Voici les valeurs que j'ai en cours d'execution
Si cela peux vous aider

Set OlApp = CreateObject("OutLook.Application") = "outlook"
Set fs = CreateObject("Scripting.FileSystemObject") = pas de valeur
Set OlExp = OlApp.ActiveExplorer
="nothing
Set NS = OlApp.GetNamespace("MAPI") ="MAPI
For j = 1 To NS.Folders.Count
= "1"
Set f = NS.Folders(j)
= "nom d'un répertoire de de outlook"
For k = 1 To NS.Folders(j).Folders.Count = "2"
Set Dossier = NS.Folders(j).Folders(k) =
"nom d'un dossier"
For Each i In Dossier.Items =
""
If i.Subject
= Target.Value Then
i.display
End If
Next i
Next k
Next j
End Sub

"Daniel.C" a écrit :

Bonjour.
Ca change un peu la donne :
1. on ne connait ni le fichier pst, ni le dossier dans lequel se trouve
le message (implicitement, il n'y a pas de doublons).
2. le fichier pst est déjà ouvert dans Outlook (C'est à dire qu'il
figure dans la liste "Fichier", "Gestion de fichiers de données".
Dans cette cofiguration, le code suivant doit faire l'affaire, sauf si
une instruction est particulière à XL2007 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object, j As Integer, k As Integer
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
For j = 1 To NS.Folders.Count
Set f = NS.Folders(j)
For k = 1 To NS.Folders(j).Folders.Count
Set Dossier = NS.Folders(j).Folders(k)
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
Next k
Next j
End Sub

Daniel

> pour répondre ta question:
> oui ma messagerie est ouverte j'ai donc accé à mes répertoires et à mes
> messages.
> j'ai encore un plantage
> A chaque test je ferme mon fichier excel pour bien repartir sur un
> programme propre
> Je pense que de base je dois bien click colonne A
>
> Que la messagerie soit ouverte ou fermé j'ai les résultats suivants
> j'ai fait les tests suivants messagerie ouverte et fermé
>
> Si je double click sur un libellé de la colonne A j'ai un plantage à la ligne
> Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
> Le terme "test" me surprend est il toujours d'actualité
>
> Si je double click sur un libellé de la colonne B j'ai un plantage à la ligne
> NS.AddStore Target.Offset(, 1).Value
>
>
>
>
> "Daniel.C" a écrit :
>
>> La macro fournie pré-suppose que les fichiers pst ne sont pas chargés
>> dans Outlook. Si ce n'est pas le cas, dis-le.
>> Daniel
>>
>>> je n'ai pas bien compris le:
>>> " En supposant que le dossier et le fichier pst soit en colonne B"
>>>
>>> je pense que cela vient de m'on explication donc je reprends:
>>> Sur mon disque D:
>>> J'ai des dossiers :(sens dossier Explorateur)
>>> Dossier 1
>>> Dossier 2
>>> Dans ces dosssiers j'ai des fichiers xxx.pst
>>> Dossier 1: fichier a. pst, fichier b. pst, etc
>>> Dossier 2: fichier a. pst, fichier b. pst, etc
>>>
>>> Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
>>> Fichier 1.pst dossier aa, dossier bb, etc
>>>
>>> je vais donc copier sur ma feuille le libellé d'un message qui vient de:
>>> Dossier 1 > fichier a. pst > dossier aa message 1
>>> Dossier 2 > fichier b. pst > dossier bb message 2
>>>
>>> Voici ci dessous des exemples pour j'espére étre plus claire
>>>
>>> j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
>>> Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"
>>>
>>> je suis un peux perdu
>>>
>>> "Daniel.C" a écrit :
>>>
>>>> Oups.
>>>> Lire :
>>>> En supposant que le dossier et le fichier pst soit en colonne B
>>>> au lieu de :
>>>> En supposant que le dossier du fichier pst soit en colonne B
>>>> Daniel
>>>>> En supposant que le dossier du fichier pst soit en colonne B :
>>>>>
>>>>> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
>>>>> Boolean)
>>>>> Dim OlApp As Object, NS As Object, Dossier As Object
>>>>> Dim OlExp As Object
>>>>> Dim i As Object
>>>>> Cancel = True
>>>>> Set OlApp = CreateObject("OutLook.Application")
>>>>> Set fs = CreateObject("Scripting.FileSystemObject")
>>>>> Set OlExp = OlApp.ActiveExplorer
>>>>> Set NS = OlApp.GetNamespace("MAPI")
>>>>> NS.AddStore Target.Offset(, 1).Value
>>>>> Set objFolder = NS.Folders.Item(NS.Folders.Count)
>>>>> Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
>>>>> For Each i In Dossier.Items
>>>>> If i.Subject = Target.Value Then
>>>>> i.display
>>>>> End If
>>>>> Next i
>>>>> NS.RemoveStore objFolder
>>>>> End Sub
>>>>>
>>>>> Fais bien une sauvegarde de ton fichier pst courant avant de tester.
>>>>> Daniel
>>>>>
>>>>>> je confirme cela fonctionne dans le répertoire test
>>>>>> Par contre le besoin final est le suivant
>>>>>>
>>>>>> J'ai sur mon disque D plusieurs fichiers PST avec plusieurs Répertoires
>>>>>>
>>>>>> d:/ Dossier 1.pst
>>>>>> Rep 1 Rep 2
>>>>>> Dossier 2.pst
>>>>>> Rep 1
>>>>>> Rep 2
>>>>>>
>>>>>> le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe
>>>>>> lequel des répertoires
>>>>>>
>>>>>> j'espere qu'une solution est possible.
>>>>>>
>>>>>> "" a écrit :
>>>>>>
>>>>>>> Bonjour Daniel,
>>>>>>>
>>>>>>> Oui, qd Richard disait ne pas y arriver,
>>>>>>> ....j'avais pensé à cela.
>>>>>>> Même en session, il faudrait être autorisé via une fenêtre TSE ou
>>>>>>> autre
>>>>>>> pour être sur le serveur depuis le poste et pouvoir accèder ce
>>>>>>> répertoire.
>>>>>>> Ce que peu d'administrateurs réseau accepteraient , il me semble...
>>>>>>> Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
>>>>>>> ça roule.
>>>>>>>
>>>>>>> @+
>>>>>>>
>>>>>>> --
>>>>>>> lSteph
>>>>>>>
>>>>>>> On 12 mar, 16:08, Daniel.C wrote:
>>>>>>>>> le .pst ou la boite .. si elle est sur le serveur et que seul
>>>>>>>>> l'administrateur réseau à cet accès!?
>>>>>>>>
>>>>>>>> Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement
>>>>>>>> tu n'y as pas accès jusquà ce que tu ouvres une session ?
>>>>>>>> Daniel
>>>>>>>
>>>>
>>>>
>>>>
>>
>>
>>





Avatar
Daniel.C
Bonjour.
Ca fonctionne chez moi. Il y a soit une différence d'environnement,
soit un dysfonctionnement lié au fait que tu utilises XL2003. Peux-tu
exécuter la macro suivante et poster le classeur résultat - ou
seulement la première feuille sur www.cijoint.fr ? Poste ensuite ici
l'adresse générée.

Sub test1()
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object, j As Integer, k As Integer
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set NS = OlApp.GetNamespace("MAPI")
Sheets.Add before:=Sheets(1)
For j = 1 To NS.Folders.Count
ligne = ligne + 1
Cells(ligne, 1) = NS.Folders(j).Name
For k = 1 To NS.Folders(j).Folders.Count
ligne = ligne + 1
Cells(ligne, 2) = NS.Folders(j).Folders(k).Name
Set Dossier = NS.Folders(j).Folders(k)
Next k
Next j
End Sub

Daniel

J'ai fait mon double click sur un libellé à la fin de l'execution rien ne se
passe
Voici les valeurs que j'ai en cours d'execution
Si cela peux vous aider

Set OlApp = CreateObject("OutLook.Application") = "outlook"
Set fs = CreateObject("Scripting.FileSystemObject") = pas de
valeur Set OlExp = OlApp.ActiveExplorer
="nothing
Set NS = OlApp.GetNamespace("MAPI") ="MAPI
For j = 1 To NS.Folders.Count
= "1"
Set f = NS.Folders(j)
= "nom d'un répertoire de de outlook"
For k = 1 To NS.Folders(j).Folders.Count = "2"
Set Dossier = NS.Folders(j).Folders(k) =
"nom d'un dossier"
For Each i In Dossier.Items =
""
If i.Subject
= Target.Value Then
i.display
End If
Next i
Next k
Next j
End Sub

"Daniel.C" a écrit :

Bonjour.
Ca change un peu la donne :
1. on ne connait ni le fichier pst, ni le dossier dans lequel se trouve
le message (implicitement, il n'y a pas de doublons).
2. le fichier pst est déjà ouvert dans Outlook (C'est à dire qu'il
figure dans la liste "Fichier", "Gestion de fichiers de données".
Dans cette cofiguration, le code suivant doit faire l'affaire, sauf si
une instruction est particulière à XL2007 :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object, j As Integer, k As Integer
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
For j = 1 To NS.Folders.Count
Set f = NS.Folders(j)
For k = 1 To NS.Folders(j).Folders.Count
Set Dossier = NS.Folders(j).Folders(k)
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
Next k
Next j
End Sub

Daniel

pour répondre ta question:
oui ma messagerie est ouverte j'ai donc accé à mes répertoires et à mes
messages.
j'ai encore un plantage
A chaque test je ferme mon fichier excel pour bien repartir sur un
programme propre
Je pense que de base je dois bien click colonne A

Que la messagerie soit ouverte ou fermé j'ai les résultats suivants
j'ai fait les tests suivants messagerie ouverte et fermé

Si je double click sur un libellé de la colonne A j'ai un plantage à la
ligne Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
Le terme "test" me surprend est il toujours d'actualité

Si je double click sur un libellé de la colonne B j'ai un plantage à la
ligne NS.AddStore Target.Offset(, 1).Value




"Daniel.C" a écrit :

La macro fournie pré-suppose que les fichiers pst ne sont pas chargés
dans Outlook. Si ce n'est pas le cas, dis-le.
Daniel

je n'ai pas bien compris le:
" En supposant que le dossier et le fichier pst soit en colonne B"

je pense que cela vient de m'on explication donc je reprends:
Sur mon disque D:
J'ai des dossiers :(sens dossier Explorateur)
Dossier 1
Dossier 2
Dans ces dosssiers j'ai des fichiers xxx.pst
Dossier 1: fichier a. pst, fichier b. pst, etc
Dossier 2: fichier a. pst, fichier b. pst, etc

Dans ces fichiers xx. pst j'ai aussi des dossiers (sens dossier outlook)
Fichier 1.pst dossier aa, dossier bb, etc

je vais donc copier sur ma feuille le libellé d'un message qui vient de:
Dossier 1 > fichier a. pst > dossier aa message 1
Dossier 2 > fichier b. pst > dossier bb message 2

Voici ci dessous des exemples pour j'espére étre plus claire

j'ai relancé votre ancien code ce matin et j'ai de nouveau une erreur???
Le programme plant ligne " NS.AddStore Target.Offset(, 1).Value"

je suis un peux perdu

"Daniel.C" a écrit :

Oups.
Lire :
En supposant que le dossier et le fichier pst soit en colonne B
au lieu de :
En supposant que le dossier du fichier pst soit en colonne B
Daniel
En supposant que le dossier du fichier pst soit en colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim OlApp As Object, NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Cancel = True
Set OlApp = CreateObject("OutLook.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
Set OlExp = OlApp.ActiveExplorer
Set NS = OlApp.GetNamespace("MAPI")
NS.AddStore Target.Offset(, 1).Value
Set objFolder = NS.Folders.Item(NS.Folders.Count)
Set Dossier = NS.Folders(NS.Folders.Count).Folders("test")
For Each i In Dossier.Items
If i.Subject = Target.Value Then
i.display
End If
Next i
NS.RemoveStore objFolder
End Sub

Fais bien une sauvegarde de ton fichier pst courant avant de tester.
Daniel

je confirme cela fonctionne dans le répertoire test
Par contre le besoin final est le suivant

J'ai sur mon disque D plusieurs fichiers PST avec plusieurs
Répertoires

d:/ Dossier 1.pst
Rep 1 Rep 2
Dossier 2.pst
Rep 1
Rep 2

le besoin est de pouvoir ouvrir n'importe quel mail dans n'importe
lequel des répertoires

j'espere qu'une solution est possible.

"" a écrit :

Bonjour Daniel,

Oui, qd Richard disait ne pas y arriver,
....j'avais pensé à cela.
Même en session, il faudrait être autorisé via une fenêtre TSE ou
autre
pour être sur le serveur depuis le poste et pouvoir accèder ce
répertoire.
Ce que peu d'administrateurs réseau accepteraient , il me semble...
Enfin puisqu'il n'est pas dans ce cas et que d'après son dernier post
ça roule.

@+

--
lSteph

On 12 mar, 16:08, Daniel.C wrote:
le .pst ou la boite .. si elle est sur le serveur et que seul
l'administrateur réseau à cet accès!?



Je n'ai jamais travaillé avec Exchange, J'imagine que, effectivement
tu n'y as pas accès jusquà ce que tu ouvres une session ?
Daniel






























1 2 3