Comment passer en lecture seule et vice versa ?

Bonjour à tous,

Un fichier en lecture seule est utilisé par de nombreuses personnes, et ponctuellement celui-ci a besoin d'être modifié.

Je cherche une macro qui puisse permettre cela, sans avoir à aller chercher dans le dossier, l'enlever du mode lecture seule... etc.

Actuellement j'ai testé la macro

Sub Modifier_Fichier()

Application.DisplayAlerts = False

Workbooks.Open "C:\******\contrats.xlsm", ReadOnly:=False

End Sub

mais ça ne marche vraiment pas très bien, certains liens ne sont pas correctement réactualisés...

Merci par avance pour votre aide !

Cdt

Bonsoir FBidee

Voilà ce que j'utilise

' Passer le fichier en lecture/écriture
SetAttr sPathEnr & sFic, vbNormal

' Passer le fichier en lecture seule
SetAttr sPathEnr & sFic, vbReadOnly

A+

Bonjour Bruno,

Merci beaucoup pour ton code.

Je l'ai adapté comme ceci :

Sub Modifier_Fichier

SetAttr "C:\******\contrats.xlsm", vBNormal

End Sub

Sauf que ça ne fonctionne pas lorsque le fichier est lancé en lecture seule, dès le départ.

Cependant,

SetAttr "C:\******\contrats.xlsm", vBReadOnly
fonctionne lorsqu'il est lancé en mode normal, et inversement. Ce qui est déjà super :)

Re,

Sauf que ça ne fonctionne pas lorsque le fichier est lancé en lecture seule, dès le départ.

Je ne comprends pas ce que vous entendez par là

Attention !
Cette instruction n'est utilisable que si le fichier n'est pas déjà ouvert, sinon impossible

D'accord, dommage.

Effectivement, j'aimerais que la macro soit lancée depuis le fichier, qui est déjà ouvert en lecture seule.

Quelque chose m'échappe..

Exemple : j'ouvre mon fichier depuis une macro (macro exécutée depuis un autre fichier)

Sub Afficher_contrats()
Workbooks.Open "C:\******\contrats.xlsm", ReadOnly:=True
End Sub

A ce stade, mon fichier contrats s'ouvre en lecture seule.

Si je décide de l'ouvrir en mode écriture, en utilisant la méthode "classique" (cad, double cliquer sur le fichier contrats.xlsm qui est dans son dossier), je n'ai aucun problème d'actualisation des liens.

Par contre avec la macro

Sub Modifier_Fichier()

Application.DisplayAlerts = False

Workbooks.Open "C:\******\contrats.xlsm", ReadOnly:=False

End Sub

Les liens déconnent... pourtant entre double cliquer sur un fichier, et cette macro ... c'est la même chose, non ?

BonjourFBidee

Non ce n'est pas tout à fait la même chose

Le double clic, ouvre le fichier et son répertoire est celui ou tu as double cliqué

L'utilisation d'une macro, indique au fichier qu'il est ouvert du répertoire de la macro

Petites nuances

Après comme nous ne savons pas comment sont fait les fichiers...

A+

Rechercher des sujets similaires à "comment passer lecture seule vice versa"