Ouvrez le classur Excel uniquement en lecture seule via VB6

J'ai une application écrite dans VB6 qui écrit des données dans une feuille de calcul. J'utilise la bibliothèque d'objects MS Excel 11.0 pour créer une instance d'Excel et ouvrir le livre:

Dim xlApp As Excel.Application, remoteBook As Workbook Set xlApp = New Excel.Application Set remoteBook = xlApp.Workbooks.Open(sheetName) 

En plus d'écrire sur le classur "nom de la feuille", le programme permet également à l'user de lancer le classur afin d'afficher les résultats cumulatifs.

Il est possible, même s'il est mince, qu'un user puisse avoir le classur ouvert pour afficher les résultats alors que quelqu'un d'autre essaie d'y écrire. Je souhaite donner à l'user l'écriture sur la priorité de la feuille. Existe-t-il une façon de lancer la feuille pour la lecture en lecture seule? Il existe une propriété en lecture seule de l'object d'application excel, mais il est (bien sûr) en lecture seule.

Comment puis-je configurer mon programme pour écrire des données sur le classur même si quelqu'un a accidentellement laissé le file ouvert à son bureau?

Faites simplement ceci:

 Set remoteBook = xlApp.Workbooks.Open( sheetName, , true) 

L'endroit où il est vrai est de s'ouvrir ou non comme Lecture seule. ReadOnly est le troisième paramètre de cette méthode.

Je pense que vous pourriez le faire via la méthode Workbook.ChangeFileAccess comme décrit ici . Je ne sais pas si cela va convenir à vos circonstances.

Permettez-moi de vous assurer d'avoir correctement interprété votre problème:

  1. Votre application écrit un file excel
  2. L'application lance le file dans Excel à l'user

Maintenant, voici ce que je pense que vous dites: une fois que l'user visualise la feuille, il se peut que vous ne souhaitiez pas modifier cette fiche.
En d'autres termes, vous ne voulez pas utiliser

 Set remoteBook = xlApp.Workbooks.Open( sheetName, , true) 

100% du time car l'affichage de l'user peut vouloir modifier datatables.

L'inconvénient est que cet administratif user peut laisser le file ouvert pour empêcher d'autres users d'écrire sur ce file.

Est-ce exact?

Si c'est le cas, il semble que vous deviez peut-être indiquer explicitement dans votre application "Ouvrir pour l'affichage" ou "ouvrir en lecture seule", puis activer la propriété Read Only de manière appropriée; ce qui est probablement indésirable.

Cependant, vous ne pouvez pas forcer une sauvegarde sur un bureau de bureau une fois que quelqu'un d'autre l'a ouvert.