faire une copie automatique en lecture seule d'un fichier partagé

sabcj

XLDnaute Nouveau
Bonjour,

Malgré mes recherches, je n'arrive pas à trouver LA solution qui me convienne. Aussi je me permet de vous demander de l'aide.

J'ai un fichier, sur un serveur (dont je n'ai pas les droits administrateur) qui est partagé. Je souhaite conserver le partage de ce fichiers (3 personnes travaillent dessus) mais qu'il soit accessible par d'autres personnes sans que ces autres personnes puissent le modifier.

J'aimerais donc, idéalement, faire une copie automatique de mon fichier, dans un autre répertoire et que cette copie soit en lecture seule.

Mon fichier a déjà une sauvegarde automatique d'enclencher en cas de soucis mais je ne souhaite pas l'utiliser.

J'ai une macro qui me permet d'enregistrer ce fichier dans autre répertoire, mais pas en automatique (je suis obligé d'appuyer sur un bouton macro alors que j'aimerais qu'en cliquant sur "enregistrer" le fichier enregistre également la copie) et en plus, cet enregistrement ne se met pas en lecture seule puisque mon fichier original n'est pas en lecture seule.

Je ne sais pas si mon explication est clair mais je suis coincé et n'arrive pas à trouver la solution (je ne suis pas super doué en macro).

Merci donc à tous ceux qui pourrait m'aider.

Bonne journée

PS: Excel 2010 et Windows seven
 

camarchepas

XLDnaute Barbatruc
Re : faire une copie automatique en lecture seule d'un fichier partagé

Bonjour ,

A mettre dans le module Thisworkbook :

Code:
Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.SaveCopyAs "c:\temp\" & ThisWorkbook.Name
SetAttr "c:\temp\" & ThisWorkbook.Name, vbReadOnly

End Sub
 

sabcj

XLDnaute Nouveau
Re : faire une copie automatique en lecture seule d'un fichier partagé

voici ce que j'ai collé (en modifiant mon chemin d'accès) mais il me dit erreur sur la dernière ligneb (désolée je suis vraiment nulle)

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.SaveCopyAs "d:\users\lumm\documents\test" & ThisWorkbook.Name
SetAttr "d:\users\lumm\documents\test\essai" & ThisWorkbook.Name, vbReadOnly

End Sub
 

camarchepas

XLDnaute Barbatruc
Re : faire une copie automatique en lecture seule d'un fichier partagé

Re ,

Peut être lié au répertoire choisit , soit spécial , soit protégé en accés .

Voici le fichier.

La sauvegarde sera dans c:\temp
 

Pièces jointes

  • Sauve_Bis_Lecture_seule.xlsm
    13.4 KB · Affichages: 60

camarchepas

XLDnaute Barbatruc
Re : faire une copie automatique en lecture seule d'un fichier partagé

Re ,

C'est le lapin qui veut pas rentrer dans le chapeau .....

Le répertoire c:\temp existe bien sur le poste ?

Curieux , aucun problème pas ici, là j'en perds mon vba .....

et en ajoutant ceci : qu'affiche le popup :


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

MsgBox ThisWorkbook.Name

ThisWorkbook.SaveCopyAs "c:\temp\" & ThisWorkbook.Name

SetAttr "c:\temp\" & ThisWorkbook.Name, vbReadOnly

End Sub
 

sabcj

XLDnaute Nouveau
Re : faire une copie automatique en lecture seule d'un fichier partagé

bonsoir,

je viens de faire le test chez moi, en local, sur mon ordi avec un fichier vierge. Mon fichier se sauvegarde bien dans c/temp mais ça ne fonctionne qu'une fois. Si je ferme et rouvre mon fichier, il me redis "erreur" lors d'un nouvel enregistrement
 

camarchepas

XLDnaute Barbatruc
Re : faire une copie automatique en lecture seule d'un fichier partagé

C'est normal,

si on le sauvegarde toujours sous le même nom, il faut remettre l'attribut du fichier à norma

Solution avant nouvelle sauvegarde


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If Dir("c:\temp\" & ThisWorkbook.Name) <> "" Then SetAttr "c:\temp\" & ThisWorkbook.Name, vbNormal

ThisWorkbook.SaveCopyAs "c:\temp\" & ThisWorkbook.Name

SetAttr "c:\temp\" & ThisWorkbook.Name, vbReadOnly


End Sub
 

sabcj

XLDnaute Nouveau
Re : faire une copie automatique en lecture seule d'un fichier partagé

en fait je viens de voir que ça marche quand je ferme les fichiers mais je ne peux pas laisser les fichiers ouverts et continuer de les utiliser. En fait, pour être plus clair, je travaille toute la journée sur un fichier qui me sert de planning (appelons le A). J'ai besoin que 2 autres personnes que moi travaille sur ce fichier qui est donc en réseaux et partagé (et protégé). Mais, j'ai également besoin que d'autres personnes aient un visu sur mon fichier sans pouvoir modifier mon planning d'origine.

ça paraitrait simple de limiter les droits à certains utilisateurs, sauf que sur ce réseaux, tous les utilisateurs s'appelle pareil (et je ne peux pas le changer) j'ai donc besoin que ma macro fasse une sauvegarde automatique dans un autre répertoire (partagé également)(que l'on appelle B) et donc que cette sauvegarde automatique soit en lecture seule. Mon soucis, c'est que cette sauvegarde "B" doit être associé au bouton enregistrer du fichier "A" et qu'elle mette à jour le fichier B sans qu'aucun des 2 fichiers ne doivent être fermé. En gros je voudrais une mise à jour des liaisons mais je coince

merci
 

camarchepas

XLDnaute Barbatruc
Re : faire une copie automatique en lecture seule d'un fichier partagé

Bon ,

Sachant qu'en plus il semble y avoir un problème de droit d'accès sur le serveur pas simple.

La solution est un fichier base de donnée et plusieur fichier interface utilisateur ( Le même mais dupliqué) .

Logiquement , sur le réseau , l'utilisateur est identifié par son log , non ? sinon il faut intégrer une reconnaissance dans le fichier interface ...
 

Discussions similaires

Statistiques des forums

Discussions
314 663
Messages
2 111 662
Membres
111 250
dernier inscrit
alinber