Menu

VBA : Autoriser modifications à l'ouverture [Résolu]

Messages postés
12
Date d'inscription
vendredi 12 octobre 2018
Dernière intervention
22 octobre 2018
-
Bonjour à tous,

Je souhaite ouvrir un fichier protégé par un mot de passe grâce à une macro en VBA. Qui plus est, j'avais aussi activé la fenêtre demandant confirmation à l'utilisateur s'il souhaite bien apporter des modifications au fichier :

"L'auteur souhaite que vous ouvriez "FileName" en lecture seule, à moins que vous ne deviez y apporter des modifications. Voulez-vous l'ouvrir en lecture seule ?"

J'ai donc écrit le code suivant pour ouvrir le fichier avec le mot de passe, mais je reste bloqué au message pour la lecture seule. Comment puis-je indiquer dans mon code que non, je ne souhaite pas ouvrir le fichier en lecture seule, pour pouvoir y apporter des modifications (copy/paste des données) ?

Code:
Sub ouvrirFichier()
Workbooks.Open Filename:="MonFichier", WriteResPassword:="Password"
End Sub

J'ai essayé avec "Application.DisplayAlerts = False" mais cela n'a pas fonctionné, le fichier est bien ouvert mais en lecture seule. D'autres idées ?

Merci à vous.


Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
12
Date d'inscription
vendredi 12 octobre 2018
Dernière intervention
22 octobre 2018
1
1
Merci
Merci à fabien25000 d'avoir trouvé la solution, voici le code à utiliser lors de l'ouverture du fichier :
Set wkb = Workbooks.Open(Filename:=sFileName, UpdateLinks:=False, ReadOnly:=True, WriteResPassword:="Password", IgnoreReadOnlyRecommended:=True)

Merci encore à lui !

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 57171 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BretonBeurre
Messages postés
477
Date d'inscription
mercredi 5 octobre 2016
Dernière intervention
24 novembre 2018
25
0
Merci
Bonjour,
je n'ai pas le temps de tester mais peut être en partant sur une msgbox qui demande si besoin de modif ou pas si oui readonly:=true si non false
fabien25000
Messages postés
477
Date d'inscription
mercredi 5 octobre 2016
Dernière intervention
24 novembre 2018
25 -
oui c'est pas faux...
et si tu code sur
Workbook_BeforeSave
avec un if et en condition ton
environ("username")
et si c'est pas toi
thisworkbook.close (false)
du coup t'as plus besoin de la lecture seule ?
BretonBeurre
Messages postés
12
Date d'inscription
vendredi 12 octobre 2018
Dernière intervention
22 octobre 2018
1 -
Par le code VBA, il faut que je puisse modifier et enregistrer "MonFichier.xlsx". Mais manuellement, il faut que je dise à l'ouverture si je veux être en lecture seule ou non. Donc je n'ai pas compris exactement ce que tu voulais faire, mais à la fin dans mon code je devrai finir par lui dire d'enregistrer les modifs. Merci quand même pour les idées ! ;)
fabien25000
Messages postés
477
Date d'inscription
mercredi 5 octobre 2016
Dernière intervention
24 novembre 2018
25 -
J'ai trouvé ce code :
Set wkb = Workbooks.Open(Filename:=sFileName, UpdateLinks:=False, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

à voir si ça peut t'aider en cruesant dans ce sens...
BretonBeurre
Messages postés
12
Date d'inscription
vendredi 12 octobre 2018
Dernière intervention
22 octobre 2018
1 -
Parfait ! Ca marche niquel ! Merci Fabien !! Je mets ton code dans une réponse à part pour qu'elle soit facilement trouvable pour d'autres
fabien25000
Messages postés
477
Date d'inscription
mercredi 5 octobre 2016
Dernière intervention
24 novembre 2018
25 -
avec plaisir ;)
Commenter la réponse de fabien25000