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

Dotnet Discussion :

fichier excel en lecture seule!pourquoi?


Sujet :

Dotnet

  1. #1
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut fichier excel en lecture seule!pourquoi?
    bonjour à tous,
    je bloque depuis quelques temps sur ce problème :
    je veux pouvoir utiliser une feuille excel (la modifier, l'enregistrer) et justement quand je demande l'enregistrement, j'obtiens une erreur : le fichier excel est en lecture seule!!!
    voici un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      Public objXL As Object ' déclaration d'un objet
     
    [...]
     
            objXL = CreateObject("Excel.Application") ' Création de l'objet
            ' Ouverture de la feuille Excel
            objXL.Workbooks.Open(FileName:="E:\Mes Documents Greg\test.xls")
     
    [...]
            objXL.Save(Filename:="E:\Mes Documents Greg\test.xls")
            objXL.Workbooks.close()
            objXL.quit()
            objXL = Nothing
    le problème se situe là : objXL.Save(Filename:="E:\Mes Documents Greg\test.xls")

    pouvez-vous m'aider, je vais craquer!!!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    et si tu appelles simplement Save sur ton workbook (sans nom de fichier) ?

  3. #3
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    tu veux dire :
    objXL.Workbooks.Save()
    ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    non, ça existe pas
    il faut appeler Save sur un Workbook, pas sur la liste des Workbooks
    celui qui est renvoyé par la fonction Open :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Public objXL As Object ' déclaration d'un objet
     
    [...]
     
            objXL = CreateObject("Excel.Application") ' Création de l'objet
            ' Ouverture de la feuille Excel
            Dim wb As WorkBook = objXL.Workbooks.Open(FileName:="E:\Mes Documents Greg\test.xls")
     
    [...]
            wb.Save()
            objXL.Workbooks.close()
            objXL.quit()
            objXL = Nothing

  5. #5
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Merci pour la précision, je pense que ça va m'aider à avancer...
    une fois que j'aurais résolu un autre problème :
    je dois avoir un souci sur Excel, puisqu'en allant faire un tour dans les références, en cochant "excel" (que j'avais oublié ), j'ai cette erreur qui est retournée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Error	1	Could not determine the dependencies of the COM 
    reference "Excel". Erreur lors du chargement de la bibliothèque/DLL du type. 
    (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
    ça sent la réinstallation d'office ...

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par grrrkewel Voir le message
    bonjour à tous,
    je bloque depuis quelques temps sur ce problème :
    je veux pouvoir utiliser une feuille excel (la modifier, l'enregistrer) et justement quand je demande l'enregistrement, j'obtiens une erreur : le fichier excel est en lecture seule!!!
    voici un bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      Public objXL As Object ' déclaration d'un objet
     
    [...]
     
            objXL = CreateObject("Excel.Application") ' Création de l'objet
            ' Ouverture de la feuille Excel
            objXL.Workbooks.Open(FileName:="E:\Mes Documents Greg\test.xls")
     
    [...]
            objXL.Save(Filename:="E:\Mes Documents Greg\test.xls")
            objXL.Workbooks.close()
            objXL.quit()
            objXL = Nothing
    le problème se situe là : objXL.Save(Filename:="E:\Mes Documents Greg\test.xls")

    pouvez-vous m'aider, je vais craquer!!!


    C'est du VB.NET ou du VBA comme code ?

  7. #7
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    c'est du VB.NET, pourquoi?
    (à noter que je débute en vb donc je prends des méthodes là ou j'en trouve, donc il se peut que je fasse des erreurs)

  8. #8
    Membre régulier Avatar de Piet
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par grrrkewel Voir le message
    ça sent la réinstallation d'office ...
    J'ai eu un problème similaire il y a quelques temps, et je ne pense franchement pas qu'il faille réinstaller Office...

    Si ce n'est pas pour utiliser les dernières fonctions d'Office, je pense même que le meilleur choix c'est de faire une COM à partir d'un Office 2000 par exemple et de faire du late binding. Au moins, les versions plus récentes sont prises en compte et on supprime le problème de compatibilité de version.

    En tout cas, si je me rappelle de ma solution de l'époque sans passer par une COM, je re-poste.

  9. #9
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par Piet Voir le message
    J'ai eu un problème similaire il y a quelques temps, et je ne pense franchement pas qu'il faille réinstaller Office...

    Si ce n'est pas pour utiliser les dernières fonctions d'Office, je pense même que le meilleur choix c'est de faire une COM à partir d'un Office 2000 par exemple et de faire du late binding. Au moins, les versions plus récentes sont prises en compte et on supprime le problème de compatibilité de version.

    En tout cas, si je me rappelle de ma solution de l'époque sans passer par une COM, je re-poste.

    j'ai effectivement office 2000, mais par contre je sais pas ce que c'est "faire une COM" et du "late binding"?

    En tout cas ça fait plaisir de voir que je suis pas le seul au monde à avoir ce problème!!

    Merci des coups de mains de chacun

  10. #10
    Membre régulier Avatar de Piet
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par grrrkewel Voir le message
    j'ai effectivement office 2000, mais par contre je sais pas ce que c'est "faire une COM" et du "late binding"?

    Je pense que l'article décrit sur devcity (http://www.devcity.net/Articles/163/1/article.aspx) à ce sujet peut vous aider (Solution -> Step-by-step).

    C'est actuellement sur ce système que je me base pour piloter Excel, et, fort est de constater que ça fonctionne très bien (application client sur Office 11 et Office 12 au départ de la verison 10 et sans utiliser les interop de la machine de développement).

    Bon, il faut admettre que le problème de "lecture seule" ne sera pas réglé, mais, à ce propos, il faut sans doute vérifier que le fichier n'est pas déjà ouvert et que la procédure d'enregistrement soit correcte.

  11. #11
    Membre régulier Avatar de grrrkewel
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut
    parfait, en allant chercher manuellement la dll comme décrit sur le lien que tu m'as donné, l'enregistrement se fait sans problème!
    Merci beaucoup Piet et à tous les autres pour les petits conseils utiles!

  12. #12
    Membre régulier Avatar de Piet
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Points : 108
    Points
    108
    Par défaut
    Pas de quoi

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

Discussions similaires

  1. Ouvrir un fichier excel en lecture seule via VBA
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2017, 13h35
  2. Ouvrir un fichier Excel en lecture seule
    Par Elvis32 dans le forum VBA Word
    Réponses: 8
    Dernier message: 17/09/2008, 10h23
  3. ouverture fichier Excel en lecture seule
    Par Echizen1 dans le forum Access
    Réponses: 5
    Dernier message: 09/01/2007, 22h51
  4. [VB6] Fichier excel en lecture seul et détection fermeture
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2006, 11h48
  5. Réponses: 1
    Dernier message: 26/01/2006, 18h16

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