Ouvrir une Feuille Excel avec un Mot de passe

Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
Bonjour,
Voilà j'ai un problème pour protéger une feuille excel. En effet pour ouvrir ma base de données Access, je fais ceci:
        public frmFiche_Trimestrielle_PP()
        {
            InitializeComponent();
            // Initialise la chaine de connexion sur la base dans le meme repertoire de l'executable   
            this.strConex = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\GestionEcoleSecondaire.mdb;Jet OLEDB:Database Password=guehi_1964";
        }

Mais pour ce qui concerne la feuille Excel je fais ceic
                //Start Excel and get Application object.
                oXL = new Microsoft.Office.Interop.Excel.Application();
                oXL.Visible = false;

                //Get a new workbook.
                //oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(System.Reflection.Missing.Value));
                oWB = oXL.Workbooks.Open(Application.StartupPath + @"/Impressions/Fiche_Trimestrielle_PP.xls", M, M, M, M, M, M, M, M, M, M, M, M, M, M);
                oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
                oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.Sheets[1];
                oSheet.Name = "Feuil1";
                oSheet.Activate();


Mais de cette façon, un message d'erreur s'affiche lorsque j'ajoute le mot de passe à ma feuille EXCEL, comment devrais-je faire alors. Merci
Afficher la suite 

6 réponses

Messages postés
13946
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 novembre 2019
319
0
Merci
Bonjour, j'ai précisé à la coloration syntaxique qu'il s'agit de C#. Tu peux le faire en cliquant sur la flèche descente à droite de <>
Commenter la réponse de Whismeril
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016
0
Merci
Bonjour,
Je ne comprends pas bien ce que vous voulez dire. Je développe effectivement sous C#, alors soyez plus explicite s'il vous plait. Merci
Commenter la réponse de warzet
Messages postés
13946
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 novembre 2019
319
0
Merci
Bonjour, quand tu as posté ton code tu t'es servi de la balise de code par défaut, ce qui a pour effet de laisser le site choisir la coloration.
Ton code n'a pas été interprété comme du C#, et par exemple les commentaires ne ressortaient pas comme tel.
J'ai juste "forcé" la coloration en C#, en cliquant là:

Commenter la réponse de Whismeril
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016
0
Merci
Bonjour,
Merci, je ne le savais pas.
Whismeril
Messages postés
13946
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 novembre 2019
319 -
Pas de soucis.
Commenter la réponse de warzet
Messages postés
13946
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 novembre 2019
319
0
Merci
J'ai testé ton code.
Dans le chemin de ton fichier tu as mis des / au lieu de \.

J'ai mis, l'application visible pour voir ce qui se passe, je n'ai pas de message d'erreur, et Excel me demande le mot de passe.

Maintenant, en regardant à quoi correspondent tous les M, il y en a un qui s'appelle Password et un autre qui s'appelle WriteResPassword? alors j'ai essayé ça:
            Microsoft.Office.Interop.Excel.Workbook oWB = oXL.Workbooks.Open(@"G:\test Pasword.xlsx", M, M, M, "mot2passe",true, M, M, M, M, M, M, M, M, M);

La feuille s'ouvre, Excel ne me demande pas le mot de passe et le nom de la feuille est changé.

Par contre cette ligne ne sert à rien
oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;

car juste après tu affectes la Feuille 1.
Commenter la réponse de Whismeril
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016
0
Merci
Bonjour,
Merci pour ton analyse pertinente, je vais le tester et t'en donner la suite. Merci encore
Commenter la réponse de warzet