1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juillet 2009
    Messages : 64
    Points : 36
    Points
    36

    Par défaut Ouvrir un fichier excel en lecture seule

    bonjour,

    J'arrive à ouvrir en vb.net un fichier Excel en utilisant la ligne de commande suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Appli = GetObject(, "Excel.Application")
    Process.Start("Chemin d'accès du fichier")
    mais je voudrais l'ouvrir en lecture seule.
    comment pourrais-je faire ?

    Merci pour votre aide.

    Dominique

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    avril 2013
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2013
    Messages : 260
    Points : 0
    Points
    0

    Par défaut

    Bonsoir,
    un truc comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim filepath As String = "C:\Test App.xls"
    Process.Start("EXCEL.EXE", filepath)
    cordialement,

  3. #3
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2011
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 1 803
    Points : 3 343
    Points
    3 343

    Par défaut

    Salut,

    je pense que hacker59 a la solution, ou au moins son début : tu peux rajouter un argument à excel ; pour la lecture seule c'est /r.
    J'ai trouvé ce billet sur le site de Crosoft qui explique les arguments possibles.
    Là j'ai pas Excel sur ce poste mais a priori tu dois pouvoir avoir les info en faisant un /? sur excel.exe.

    NB : le GetObject tu devrais pas le faire après le Start ?
    Plus je connais de langages, plus j'aime le C.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juillet 2009
    Messages : 64
    Points : 36
    Points
    36

    Par défaut

    Bonsoir,

    Merci à tous les deux pour vos réponses et j'ai essayé plusieurs lignes de code selon vos suggestions mais sans résultat.

    Dominique

  5. #5
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2011
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 1 803
    Points : 3 343
    Points
    3 343

    Par défaut

    Process.Start("excel.exe", "/r " + fileName); ouvre le fichier en lecture-pas-seule ?
    Plus je connais de langages, plus j'aime le C.

  6. #6
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    3 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 3 668
    Points : 7 435
    Points
    7 435
    Billets dans le blog
    17

    Par défaut

    Bonjour,

    Si tu veux ouvrir un fichier Excel pour l'utiliser dans ton application VB.net, tu n'as pas besoin de getobject ou de createobject. D'ailleurs, je ne suis pas sûr qu'ils soient utilisables sans avoir importé l'assembly VisualBasic

    Tu peux utiliser Interop et les Primaey Interop Assemblies ou juste établir une référence avec Excel.exe et le Framewok va s'arranger avec la liaison, dépendant un peu de ta version de Visual Studio.

    Une fois que tu as ta référence, tu exécutes un simple WorkBooks.open.

    La page que je t'ai donnée est l'instruction en VBA et demande une modiification des noms d'objets genre : (de mémoire et non testé, mais l'intellisene devrait suivre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim XlApp as new Microsoft.interop.excel.application
    dim classeur as Microsoft.interop.excel.workbook = xlapp.workbooks.open('"c:\copie\hector.xslx",false,true)
    Je ne suis pas sûr que Interop et/ou automation acceptent les paramètres nommés.

    P.S. Excel est ainsi fait qu'il est pratiquement impossible pour un second utilisateur de modifier un classeur ouvert par un premier utilisateur, tant que le premier utilisateur ne l'a pas fermé. Ceci dit, lecture seule reste intéressant si tu ouvres un classeur qui te sert de modèle et que tu ne veux pas perdre ou modifier par mégarde.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    À force de vouloir considérer les utilisateurs comme des imbéciles patentés, on risque de se mettre dans le trouble.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juillet 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juillet 2009
    Messages : 64
    Points : 36
    Points
    36

    Par défaut

    Bonjour,

    Oui la solution avec interop fonctionne mais il faut écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim XlApp as new Microsoft.office.interop.excel.application
    dim classeur as Microsoft.office.interop.excel.workbook = xlapp.workbooks.open('"c:\copie\hector.xslx",false,true)
    merci pour cette solution.

    Dominique

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

Discussions similaires

  1. [DATA] Ouvrir un fichier excel en lecture seule via SAS
    Par Caro0702 dans le forum SAS Base
    Réponses: 1
    Dernier message: 29/11/2012, 05h32
  2. Ouvrir un fichier excel en lecture seule via VBA
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/03/2011, 08h08
  3. Ouvrir un fichier Excel en lecture seule
    Par Elvis32 dans le forum VBA Word
    Réponses: 8
    Dernier message: 17/09/2008, 10h23
  4. Réponses: 1
    Dernier message: 26/01/2006, 18h16
  5. Ouvrir un fichier word en lecture seule
    Par yoyo30 dans le forum Access
    Réponses: 11
    Dernier message: 09/09/2005, 10h25

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