IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Test si fichier protégé en lecture (sans ouverture dudit fichier) [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut Test si fichier protégé en lecture (sans ouverture dudit fichier)
    Bonjour,

    Je dois traiter par programme en automatique une liste de fichiers Excel et les convertir en TXT. Jusque là, pas de problème.

    Mais comment savoir si un fichier Excel est protégé en lecture par un mot de passe sans avoir à ouvrir ce même fichier ? ( = s'il est protégé, je n'ai pas à le traiter) car le pb en auto c'est qu'Excel s'ouvre avec un invite mot de passe sur le fichier protégé et attend... et le traitement auto se bloque.

    Y a-t-il un moyen donc de savoir (par un test quelconque) si le fichier est protégé en lecture sans qu'il y ait un invite de mot de passe ? (j'ai beau cherché, je ne trouve rien)

    Merci d'avance de toute aide

  2. #2
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut Contournement
    Bonjour,

    Finalement j'ai trouvé la solution toute seule.
    Pour ceux que cela intéressent :
    1. Tout d'abord, c'est nul que rien ne soit prévu afin de tester si un fichier est protégé en lecture sans l'ouvrir
    2. Après moults recherches sans résultats, j'ai utilisé un contournement tout simple mais efficace : essayer d'ouvrir le fichier en spécifiant un mot de passe à vide
    => les fichiers non protégés sont ouverts sans problème
    => les fichiers ayant un mot de passe (forcément différent de chaine vide), l'ouverture génère une erreur que je rattrape

    Exemple (bon ,c'est en C#) :

    string fichierExcel = path du fichier Excel à traiter
    paramUpdateLinks = 2 car on ne veut pas updater les liens
    paramPassword = ""

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    try
    {
       excelWorkBook = excelApplication.Workbooks.Open(fichierExcel, paramUpdateLinks, paramMissing, paramMissing, paramPassword, paramMissing, paramMissing, 
                       paramMissing, paramMissing,paramMissing, paramMissing, paramMissing, paramMissing, paramMissing, paramMissing);
    }
    catch (System.Runtime.InteropServices.COMException exProtect)
    {
       string labelError = exProtect.ToString();
       if (labelError.Contains("Mot de passe invalide") == true)
       {
            //On est dans le cas d'un fichier protégé en lecture
            return resultOK;
       }
       else
       {
            throw new System.Exception();
       }
    }

    Et voilà.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. import excel sans ouverture du fichier
    Par rasta girl dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/05/2008, 14h02
  2. Execution d'une macro sans ouverture du fichier
    Par mhamedbj dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/12/2007, 11h02
  3. Réponses: 6
    Dernier message: 11/12/2007, 10h42
  4. ouverture de fichiers word dans delphi (sans utiliser word)
    Par poussinphp dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 11/07/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo