VBA : Autoriser modifications à l'ouverture
Résolu
BretonBeurre
Messages postés
12
Statut
Membre
-
fabien25000 Messages postés 697 Statut Membre -
fabien25000 Messages postés 697 Statut Membre -
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:
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.
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.
A voir également:
- VBA : Autoriser modifications à l'ouverture
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
2 réponses
Merci à fabien25000 d'avoir trouvé la solution, voici le code à utiliser lors de l'ouverture du fichier :
Merci encore à lui !
Set wkb = Workbooks.Open(Filename:=sFileName, UpdateLinks:=False, ReadOnly:=True, WriteResPassword:="Password", IgnoreReadOnlyRecommended:=True)
Merci encore à lui !
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
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
Le truc c'est qu'il faut toujours pouvoir ouvrir le fichier manuellement, avec le choix de l'ouvrir en Lecture seule ou non.
Donc j'ai essayé de faire une msgbox à son ouverture, mais on ne peut pas modifier les attributs d'un fichier ouvert. Alors j'ai dû taper un code qui, en fonction de la réponse de l'utilisateur, ferme le fichier, puis le rouvre en changeant l'attribut de celui-ci. Sauf qu'au moment de le ré-ouvrir il me redemande si je veux la Lecture Seule ou non… Même avec "Application.DisplayAlerts = False".... Dommage ;)
Donc j'ai essayé de faire une msgbox à son ouverture, mais on ne peut pas modifier les attributs d'un fichier ouvert. Alors j'ai dû taper un code qui, en fonction de la réponse de l'utilisateur, ferme le fichier, puis le rouvre en changeant l'attribut de celui-ci. Sauf qu'au moment de le ré-ouvrir il me redemande si je veux la Lecture Seule ou non… Même avec "Application.DisplayAlerts = False".... Dommage ;)
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 ! ;)