Bonjour à tous,
Pour les besoins d'une application, j'ai besoin d'ouvrir des fichiers Excel via un ActiveX (de type navigateur Web) directement dans mon application.
J'ai modifié les comportements standards d'ouverture des fichiers Excel pour qu'il s'ouvre directement (sans message) dans le navigateur au lieu qu'Excel s'ouvre à côté au niveau de la base de registre :
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\AttachmentExecute\{0002DF01-0000-0000-C000-000000000046}]
"Excel.Sheet.8"=hex:00
"Excel.Sheet.12"=hex:00
et
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.12]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.OpenDocumentSpreadsheet.12]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetMacroEnabled.12]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.5]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Template]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Template.8]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.TemplateMacroEnabled]
"BrowserFlags"=-
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excelxmlss]
"BrowserFlags"=-
Pour reproduire ce comportement, il suffit d'ouvrir IE et ensuite de glisser un fichier Excel : par défaut, un message apparaît demandant d'ouvrir ou sauvegarder le fichier (comme un téléchargement). Si on veut l'ouvrir, Excel se lance.
Dans mon cas, Le fichier s'ouvre directement dans IE (il y a bien un processus Excel derrière).
Cela fonctionne bien avec des fichiers .XLSX et des fichiers .XLS. En revanche j'ai des soucis avec les fichiers .XLSM et des fichiers .XLS (pour ces derniers, quand ils comportent une macro).
Une fenêtre s'ouvre me demandant ce que je veux faire :
Cela semble être une sécurité liée à la présence de macros dans le fichier ?
Je cherche un moyen de désactiver ce message et faire en sorte que le fichier s'ouvre directement.
J'ai écumé pas mal de pages retournées par Google sans trouver de solution...
Si quelqu'un a une idée ou une solution, je suis preneur !
Merci d'avance pour vos réponses,
Cédric
Partager