Variable d'environnement Excel ?

  • Initiateur de la discussion Olivier
  • Date de début
O

Olivier

Guest
Salut le forum,

j'ai une question difficile je crois :)

Je commence par placer le contexte :
J'ai développé une application vba, qui est placée dans un répertoire accessible uniquement en lecture et execution (pas d'ecriture)
lors de l'exécute du code vba, il y a un workbooks.add, je veux renommer automatiquement ce nouveau classeur (qui porte le nom de Classeur1 par défaut) mais impossible, j'ai un message d'erreur qui me dit que ce nouveau classeur est en lecture seule (il semble hériter des droits de l'application vba)
Je sais que les applications microsoft ont la mauvaise habitude de vouloir placer des fichiers temporaires dans le meme repertoire que le fichier en cours d'utilisation, et ca ne m'arrange pas puisque j'interdis l'ecriture dans ce repertoire.
Ainsi, je voudrais me débarasser de ce problème en modifiant peut-etre une variable d'environnement excel pour que ce nouveau classeur soit crée dans un répertoire différent, directement dans le repertoire privé de l'utilisateur.

Est-il possible de modifier à ce point le fonctionnement d'Excel ? Ou dois-je céder des droits d'écriture et mettre en 'danger' mon application ?

Merci beaucoup de votre aide si vous avez une idée.
Je vous souhaite une bonne journée ^^
Olivier.
 

Jam

XLDnaute Accro
Salut Olivier,

aïe...ça va être difficile car en effet à partir du moment où tu as palcer ton fichier dans un répertoire dont tu en interdit l'écriture...bah la réponse est dans la question.

Cette façon de faire me semble incorrecte. En effet pourquoi cherches-tu à 'protéger' ton classeur si tu souhaites que les utilisateurs y apporte des modifications ?

Il existe d'autres moyens en fonction de tes choix. Par exemple utiliser une BDD où les données seraient stockée (backend) et un outil de consultation et de 'modification' qui serait Excel (frontend). Mais il y a aussi d'autres moyens de protection de ton classeur (protection du code, proctection des feuilles, de cellules, etc...). Les possibilités sont nombreuses et variées mais c'est à toi de voir.

Bon courage.
 

Creepy

XLDnaute Accro
Bonsoir le Forum, Jarm, Olivier,

Voici un petit exemple

Code:
Sub test()
MsgBox 'The current default file path is ' & _
    Application.DefaultFilePath

Application.DefaultFilePath = 'c:\\'

MsgBox 'The current default file path is ' & _
    Application.DefaultFilePath
End Sub

Et voila le chemin par defaut modifié !

Attention le repertoire doit absolument exister pour que cela marche et la fonction ne vérifie rien et ne créée rien !

Tiens nous au courant.

@+

Creepy

Message édité par: Creepy, à: 26/04/2006 20:00
 

Discussions similaires

Réponses
13
Affichages
429

Statistiques des forums

Discussions
312 695
Messages
2 091 051
Membres
104 748
dernier inscrit
Lylie76