XL 2013 macro ouverture en lecture seule

  • Initiateur de la discussion Initiateur de la discussion Bnj
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bnj

XLDnaute Occasionnel
bonjour,

je souhaiterais que mon classeur excel s'ouvre en lecture seule automatiquement et systématiquement via une macro.
En effet, je le souhaite via macro car une commande via un bouton permettra :
- d'enlever la lecture seule (via la commande ThisWorkBook.ChangeFileAccess xlReadWrite)
- actualiser les données (ActiveWorkbook.RefreshAll)
- enregistrer le fichier (ActiveWorkbook.Save)
- remettre la lecture seule (via la commande ThisWorkBook.ChangeFileAccess xlReadWrite)

pour macro à l'ouverture, j'ai codé ceci :
Private Sub Workbook_Open()
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Worksheets("note mutation").Activate
ActiveWindow.View = xlPageBreakPreview
ActiveWorkbook.SlicerCaches("Segment_Division_bureau").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_Bureau_service").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_gestion").ClearManualFilter
End Sub

Cependant, rien ne se passe , le fichier ne s'ouvre pas en lecture seule.

complément d'info, je ne souhaite pas que l'utilisateur voit une texte box à l'ouverture lui parlant de lecture seule par exemple. c'est pour cela que je ne coche pas l'option lecture seule recommandée

MErci de votre aide
 
Bonjour Bnj,

A insérer et adapter dans le ThisWorkBook.Open:

VB:
Dim MonFichier As String

Application.ScreenUpdating = False

MonFichier = ThisWorkbook.Path 'à adapter
'Ouverture du fichier en Lecture Seule
.Workbooks.Open filename:=MonFichier, ReadOnly:=True

Application.ScreenUpdating = True
 
rien ne se passe à l'ouverture du fichier et je ne suis pas en lecture seule
et lorsque je clique sur mon bouton a qui j'ai attribué cette commande en VBA
Sub Macro9()
'
' Macro9 Macro
'

ThisWorkbook.ChangeFileAccess xlReadWrite
Range("G22:I29").Select
Selection.ClearContents
Range("B22:B29").Select
Selection.ClearContents
Range("E13:I13").Select
Selection.ClearContents
Range("H11").Select
Selection.ClearContents
Range("E8:I8").Select
Selection.ClearContents
Range("E5:I5").Select
Selection.ClearContents
ActiveWorkbook.SlicerCaches("Segment_Division_bureau").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_Bureau_service").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_gestion").ClearManualFilter
ActiveWorkbook.RefreshAll
Range("O3") = Date
ThisWorkbook.ChangeFileAccess xlReadWrite
ActiveWorkbook.Save
End Sub
cela me cause l'erreur suivante :
upload_2017-3-17_13-48-18.png
 
Insère le code que je t'es fournit dans l'évènement 'Open' de Workbook
upload_2017-3-17_13-57-14.png

VB:
Dim MonFichier As String

Application.ScreenUpdating = False

MonFichier = ThisWorkbook.Path 'à adapter
'Ouverture du fichier en Lecture Seule
Application.Workbooks.Open filename:=MonFichier, ReadOnly:=True

Application.ScreenUpdating = True
 
merci beaucoup
adaptée sur mon fichier, cette macro mais une fenêtre me demande si je veux réouvrir le fichier à nouveau. J'ai contourné avec Application.DisplayAlerts = False

concernant mon bouton de commande qui sert à :
-enlever la lecture seule
-actualiser les données
-enregistrer
-remettre la lecture seule

cela beugue au moment de la remise en lecture seule (je l'ai marqué en rouge ci-dessous)

voici mon code de bouton :
Sub Macro9()
'
' Macro9 Macro
'

ThisWorkbook.ChangeFileAccess xlReadWrite
Range("G22:I29").Select
Selection.ClearContents
Range("B22:B29").Select
Selection.ClearContents
Range("E13:I13").Select
Selection.ClearContents
Range("H11").Select
Selection.ClearContents
Range("E8:I8").Select
Selection.ClearContents
Range("E5:I5").Select
Selection.ClearContents
ActiveWorkbook.SlicerCaches("Segment_Division_bureau").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_Bureau").ClearManualFilter
ActiveWorkbook.SlicerCaches("Segment_Section1").ClearManualFilter
Range("O3") = Date
ThisWorkbook.ChangeFileAccess xlReadWrite
ActiveWorkbook.Save
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
918
Compte Supprimé 979
C
Retour