Un client qui a plusieurs PC a de gros problèmes sur ses Outlook Sur 4 PC: Un pour lui, un autre pour son associé et deux autres pour le travail itinérant. C’est un commercial;  il créé un sous dossier Outlook pour chaque prospect; J’ai compté pour l’année 2022 environ 150 sous dossiers, ainsi qu’une vingtaine de « sous – sous » dossiers.

Il est passé du protocole POP à l’IMAP mais s’est mélangé les pinceaux en créant sur certains PC des dossiers Outlook non synchronisés, et sur d’autres des dossiers correctement synchronisés.

Comment a-t-il fait ça? Sous Outlook on peut créer un sous-dossier non synchronisé même sur un compte en IMAP; Il suffit de le créer depuis le dossier principal comme illustré ici. 

En (1) : Clic droit sur le dossier racine du compte mail, puis en (2) création du sous-dossier: Voilà un sous dossier qui ne sera pas synchronisé en IMAP! D’ailleurs le nom du dossier sera automatiquement suivi de la mention:  « (uniquement sur cet ordinateur) ».

 

Et voici en dessous la bonne façon de créer un sous-dossier qui sera synchronisé; Il faut le générer en cliquant sur « Boite de réception ».

Imaginez mon client qui créé donc sur ses quatre PC des sous dossiers sans faire attention à ce détail. Puis il importe le fichier PST d’origine qu’il a précédemment sauvegardé depuis son ancienne installation en POP sur chaque PC dans ces dossiers IMAP nouvellement créés…

Au début, il pense que tout est synchro. Puis quelques jours de travail plus tard, il remarque que des éléments qu’il a rentré depuis un PC ne sont pas répercutés sur un autre PC, alors que sur son troisième PC c’est le cas.

Facile! Il suffira pour moi de travailler sur les 4 PC en même temps et de réorganiser tout ça! Sauf que si vous avez bien lu le début l’article, il y a pléthore de dossiers: Impossible de s’en sortir à l’huile de coude.

Pré traitement des PST

Le problème de l’ajout automatique par Outlook de la mention  » Uniquement cet ordinateur  »  m’oblige à trouver le moyen de renommer en masse les dossiers Outlook, sinon la fonction d’import sans doublons ne va pas fonctionner. 

Je fait quelques recherches et je trouve un script Macro ici: How to Batch Find & Replace Specific Words in All Outlook Folder Names (datanumen.com).

NB: Les manipulations dans ce chapitre sont à faire sur chaque PC, du moins ceux dans lesquels les dossiers Outlook à concaténer ont subit cet ajout textuel non désiré.

D’abord, activer temporairement les Macros sur le Outlook du PC: Menu Outlook > Fichier > Options > Centre de gestion de la confidentialité puis clic sur « Paramètres de Centre de gestion de la confidentialité ». Une fenêtre s’ouvre, j’y choisit « Paramètre de macros » et je coche « Notification pour toutes les macros » (Auparavant les macros étaient en Désactivé).

Le script de renommage en masse des dossiers Outlook

Toujours sous Outlook j’appuie en même temps sur les boutons ALT et F11 du clavier pour ouvrir l’éditeur de script. Je créé un module depuis le menu Insertion:

Puis dans la fenêtre d’édition, je fais un copier coller du code récupéré sur le site sus cité, mais je l’adapte pour le faire fonctionner dans le dossier Outlook que je veux. En (2) le code que j’ai modifié.

L’éditeur de Macro Outlook est pointilleux; Je fais bien attention de cliquer gauche sur « Module 1 » pour le sélectionner, puis de choisir dans le menu déroulant la fonction « FindReplaceWordsinFolderNames() ».

Ensuite je clic sur l’icone de Disquette pour enregistrer le script.

Voici le code final pour faciliter le copier coller

				
					Public strFind, strReplace As String

Private Sub FindReplaceWordsinFolderNames()
    Dim objFolders As Outlook.Folders
    Dim objFolder As Outlook.Folder
 
    Set objFolders = Application.ActiveExplorer.CurrentFolder.Folders
 
    'You need to input the specific words for find and replace
    strFind = InputBox("Enter the specific words you want to change.")
    strReplace = InputBox("Enter the specific words you want to change to. (Case Sensitive)")
 
    For Each objFolder In objFolders
        Call ProcessFolders(objFolder)
    Next
 
    MsgBox "Complete!", vbExclamation, "Rename Folders"
End Sub
 
Private Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
    Dim objSubfolder As Outlook.Folder
 
    On Error Resume Next
    If InStr(LCase(objCurrentFolder.Name), LCase(strFind)) > 0 Then
       'Find and replace the specific words
       objCurrentFolder.Name = Replace(LCase(objCurrentFolder.Name), LCase(strFind), strReplace)
    End If
 
    'Process all folders recursively
    If objCurrentFolder.Folders.Count > 0 Then
       For Each objSubfolder In objCurrentFolder.Folders
           Call ProcessFolders(objSubfolder)
       Next
    End If
End Sub

				
			

Je referme alors l’éditeur de Macro, fais un clic gauche sur le sous dossier Outlook dans lequel je vois les dossiers avec la  mention (uniquement cet ordinateur) pour le sélectionner. Je réouvre l’éditeur Macros (ALT+F11) et je re sélectionne dans le menu déroulant de la Macro « FindReplaceWordsinFolderNames() ». Je clic sur la toute petite flèche verte pour l’exécuter.

Je retombe alors sur l’interface classique de Outlook, mais une fenêtre apparait pour me demander quel texte doit être remplacé. Je tape <ESPACE>(uniquement cet ordinateur) . Attention! Bien placer un espace avant le texte! Sinon rien ne se passera.

Je clic sur OK, la fenêtre d’alerte me demande par quoi remplacer, je ne met évidemment rien, clic OK, message Done! Super, en un tour de main les dizaines de dossiers et sous dossiers Outlook sont renommés.

Exporter les PST

Je vais tenter de faire comme ceci: Depuis chaque PC j’exporte seulement le dossier de travail qui pose problème au format PST, je renomme chaque fichier PST pour refléter depuis quel PC il a été généré et je vais copier coller ces PST sur un PC puissant équipé d’Outlook dans un dossier Windows en vue de les traiter.

Créer un PST Vide

Mon idée c’est d’utiliser la fonction d’importation de Outlook; Elle détecte les doublons. Sur le PC puissant, je créé un dossier PST vide: Sous Outlook > Menu Fichier > Paramètres du compte > Paramètres du compte (non ce n’est pas un doublon) Puis Onglet Fichiers de données , clic sur Ajouter. De là je créé le fichier PST vide nommé PST final dans le même dossier que les fichiers PST exportés.

A partir de ce moment je vois dans Outlook le dossier PST final complètement vide.

Le dédoublonnage de l'import Outlook

Je me rends dans menu Outlook > Fichier > Ouvrir et exporter > Importer / Exporter > Importer à partir d’un autre programme ou fichier > Fichier de données Outlook (.pst) puis bouton Parcourir. J’importe d’abord le PST du PC1 en laissant les options par défaut.

L’exécution de l’import n’est pas accompagnée d’une barre de progression et l’on doit deviner sa complétion en lançant le gestionnaire des tâches ! 

Autre piège: Après l’import terminé, les sous dossiers sont bien visibles mais.. Aucun email dedans! C’est -étrangement- une affaire de réglages du mode d’affichage des dossiers:

Il faut se placer avec la souris sur la boite de réception (clic gauche dessus donc), ensuite Menu Outlook puis onglet Affichage > Changer l’affichage et cocher Messages IMAP (tronqué en « Messages I… »). 

Ensuite re cliquer sur Changer l’affichage et clic sur Appliquer l’affichage actuel aux autres dossiers de courrier. La fenêtre ci-dessous s’affiche dans laquelle on coche -évidemment- « PST Final » et aussi « Appliquer l’affichage aux sous dossiers ».

Au final ce premier import donne le résultat ci-dessous, avec le fameux dossier à dédoublonner pour mon client: PROSPECT 2022.

Import sans doublon du deuxième PST

Je sélectionne le dossier Outlook (clic gauche) qui doit être dédoublonné (PROSPECT 2022). Ensuite je me rends dans le Menu Outlook > Fichier > Importer etc.. Et sélectionne comme import le fichier PST du PC2, mais je coche « Ne pas importer les doublons ». La fenêtre de pas à pas suivante est à régler ainsi: Sélection du dossier PROSPECT 2022 du PST de PC2, et « Importer les éléments dans le dossier actif ».

Suite des imports et conclusion

Je procède pareillement pour les fichiers PST des PC3 et PC4. et voilà donc mon PST FINAL dûment rempli d’éléments non doublonnés! 

La suite est plus simple: Sur le PC de traitement, je rentre les paramètres IMAP de la boite mail du client.

Ensuite, clic droit sur le dossier dédoublonné PROSPECT 2022 placé dans PST Final puis je choisis « Déplacer le dossier », chemine vers le dossier de la boite mail de mon client et prend garde à bien le déplacer dans le dossier « Boite de réception » pour être certain qu’il se synchronise en IMAP.

Evidemment la synchro prend du temps mais deux heures plus tard tout est en place… Avec sur chaque PC les mêmes dossiers Outlook apparus dans chaque boite de réception, dûment synchronisés !