<p>Depuis MS Office 2013, les fenêtres de chaque application Office fonctionnent dans une seule instance de l’exécutable. Quand une instance ouvre une nouvelle fenêtre, l’Affichage des tâches bascule d’abord vers une fenêtre d’application existante. (Mon autre grief est que plusieurs commandes ANNULER remontent chronologiquement à travers plusieurs fenêtres, ce qui n’est jamais ce que je veux.)</p>
<h2><a name="p-27046-word-et-excel-1" class="anchor" href="#p-27046-word-et-excel-1" aria-label="Heading link"></a>Word et Excel</h2>
<p>J’ai résolu le problème dans Office 2016 en utilisant des options de ligne de commande pour exécuter chaque fenêtre Word et Excel dans une instance séparée. Pour Word, l’option est <code>/N</code> ; pour Excel c’est <code>/X</code>. Cela coûte un peu plus de temps de démarrage et un peu plus de mémoire. Je n’exécute pas beaucoup de fenêtres en même temps, donc pour moi la réduction de l’agacement en vaut la peine.</p>
<p>Pour les icônes du bureau, les barres d’outils personnalisées et d’autres raccourcis, vous pouvez simplement modifier les propriétés et ajouter l’option à la ligne de commande cible :</p>
<p>“C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE” /X “C:\Data\Weather\Weather Log.xls”</p>
<p>Faire en sorte que l’option s’applique quand vous ouvrez un fichier (par ex. par double-clic) est un peu plus difficile.</p>
<ul>
<li>
<p>Ouvrez une fenêtre de commande <em>en tant qu’Administrateur</em>.</p>
</li>
<li>
<p>Trouvez le type de fichier associé à une extension de fichier :</p>
</li>
</ul>
<blockquote>
<p>assoc .xls<br>
.xls=Excel.Sheet.8</p>
</blockquote>
<ul>
<li>Trouvez la commande utilisée pour ouvrir ce type de fichier :</li>
</ul>
<blockquote>
<p>ftype excel.sheet.8<br>
excel.sheet.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” “%1”</p>
</blockquote>
<ul>
<li>Remplacez cette commande par une qui inclut l’option :</li>
</ul>
<blockquote>
<p>ftype excel.sheet.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
excel.sheet.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<ul>
<li>Répétez à partir de l’étape 2 pour chaque extension de fichier que vous utilisez (par ex. .xlsx). Celles qui ont le même type de fichier ne nécessitent pas de changement supplémentaire.</li>
</ul>
<p>Vous pourriez faire un changement en gros en capturant toutes les définitions ftype d’Excel dans un fichier .BAT, en modifiant le fichier pour ajouter <code>ftype </code> au début de chaque ligne et <code> /X</code> après chaque .EXE, et (pour les scripts .BAT) en changeant <code>%1</code> en <code>%%1</code></p>
<blockquote>
<p>ftype | find /i “office16\excel” > ftypes.bat</p>
</blockquote>
<blockquote>
<p>[votre éditeur de texte] ftypes.bat<br>
(faites les modifications décrites ci-dessus)</p>
</blockquote>
<p>L’exécution du script résultant devrait produire une sortie similaire à :</p>
<blockquote>
<p>ftypes.bat</p>
</blockquote>
<blockquote>
<p>ftype dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”<br>
dqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Addin=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Addin=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Backup=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Backup=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”<br>
Excel.Chart=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Chart.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Chart.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.CSV=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.CSV=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Macrosheet=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Macrosheet=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.OpenDocumentSpreadsheet.12=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.OpenDocumentSpreadsheet.12=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Sheet.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Sheet.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Sheet.12=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Sheet.12=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.SLK=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.SLK=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Template=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Template=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Template.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Template.8=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.Workspace=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.Workspace=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excel.XLL=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”<br>
Excel.XLL=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X “%1”</p>
</blockquote>
<blockquote>
<p>ftype Excelhtmlfile=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X<br>
Excelhtmlfile=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X</p>
</blockquote>
<blockquote>
<p>ftype Excelhtmltemplate=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X<br>
Excelhtmltemplate=“C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE” /X</p>
</blockquote>
<blockquote>
<p>ftype iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”<br>
iqyfile=C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE /X “%1”</p>
</blockquote>
<h2><a name="p-27046-autres-applications-office-2" class="anchor" href="#p-27046-autres-applications-office-2" aria-label="Heading link"></a>Autres applications Office</h2>
<p>Certaines applications Office, notamment PowerPoint, n’ont pas d’option pour démarrer une nouvelle instance. Cependant, exécuter une application en tant qu’utilisateur différent crée une nouvelle instance. Donc un contournement est de créer des utilisateurs Windows locaux pour autant de bureaux virtuels que vous souhaitez ouvrir PowerPoint simultanément. Ce schéma n’est pas idéal, car vous devez vous souvenir quels utilisateurs/instances sont déjà en cours d’exécution avant d’en ouvrir une nouvelle. Si vous n’en avez que quelques-uns, ce n’est peut-être pas si mal.</p>
<p>Pour créer chaque utilisateur :</p>
<p><strong>Paramètres > Comptes > Famille et autres utilisateurs > [+] Ajouter un autre utilisateur à ce PC</strong></p>
<ul>
<li>
<p>Je n’ai pas les informations de connexion de cette personne</p>
</li>
<li>
<p>Ajouter un utilisateur sans compte Microsoft</p>
</li>
<li>
<p>Entrez le nouveau nom d’utilisateur, mot de passe et questions de sécurité</p>
</li>
</ul>
<p>Pour créer un raccourci qui lance PowerPoint en tant qu’utilisateur spécifié, modifiez les propriétés du raccourci pour utiliser une commande telle que :</p>
<pre><code class="lang-auto">runas /user:user2 /savecred "C:\Program Files (x86)\Microsoft Office\root\Office16\POWERPNT.EXE"
</code></pre>
<p><code>runas</code> demande le mot de passe de l’utilisateur. <code>/savecred</code> enregistre le mot de passe la première fois et utilise le mot de passe enregistré par la suite. Vous pourriez vouloir initialement régler chaque raccourci sur <strong>Exécuter : Fenêtre normale</strong>, et plus tard le changer en <strong>Exécuter : Réduit</strong>.</p>
<p>Ces raccourcis pourraient être soit sur le bureau Windows, soit dans un menu de barre d’outils personnalisée. Une fois PowerPoint en cours d’exécution, vous pouvez soit ouvrir un fichier PPT depuis celui-ci, soit glisser un fichier depuis l’Explorateur de fichiers. Si vous travaillez sur quelques fichiers PPT pendant une période prolongée, vous pourriez créer un raccourci pour chaque fichier, en spécifiant quel utilisateur utiliser.</p>
<h2><a name="p-27046-ouvrir-une-instance-powerpoint-depuis-un-fichier-ppt-3" class="anchor" href="#p-27046-ouvrir-une-instance-powerpoint-depuis-un-fichier-ppt-3" aria-label="Heading link"></a>Ouvrir une instance PowerPoint depuis un fichier PPT</h2>
<p>Malheureusement, glisser un fichier PPT sur un des raccourcis de bureau décrits ci-dessus ne fonctionnera pas, car <code>runas</code> exige que la ligne de commande complète de PowerPoint soit entre guillemets. Les raccourcis pour ouvrir un fichier PPT directement nécessitent un script intermédiaire pour gérer les guillemets. Créez un script tel que “<strong>PowerPoint_User.bat</strong>” :</p>
<pre><code class="lang-auto">:: Usage: PowerPoint_User <username> <PPT filename>
:: Opens a PPT file as a specified user, starting a new PowerPoint instance on
:: the current virtual desktop if that user was not already running PowerPoint.
:: (%f2 expands %2 to full path with no quotes. See "call /?".)
@echo off
C:\Windows\System32\runas.exe /user:%1 /savecred "POWERPNT.EXE \"%f2\""
</code></pre>
<p>Puis créez un raccourci pour chaque utilisateur, avec une commande telle que :</p>
<pre><code class="lang-auto">C:\bin\PowerPoint_User.bat user2
</code></pre>
<p>Si le raccourci est sur votre bureau Windows, alors vous pouvez glisser un fichier PPT dessus. Si vous créez le raccourci dans <code>%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo</code>, alors vous pouvez faire un clic droit sur un fichier PPT et l’ouvrir depuis le menu “<strong>Envoyer vers</strong>”. Dans les deux cas, souvenez-vous que chaque raccourci demandera un mot de passe la première fois qu’il est exécuté.</p>
<p>(Si vous devez déboguer le raccourci, réglez-le sur <strong>Exécuter : Fenêtre normale</strong>, ajoutez <code>cmd /k </code> au début de la commande, et supprimez <code>@echo off</code> du script.)</p>