ActiveWorkbook.Save hors Lecture seule

Résolu
Bonjour le forum,

Encore besoin d'un coup de pouce SVP :

Je souhaite désactiver le ActiveWorkbook.Save seulement si mon fichier est ouvert en lecture seule.

Une idée pour moi ?

D'avance merci !

3 réponses

  1. Contributeur
    Bonjour,

    Tout d'abord enlever lecture seule, ensuite ouvrez votre classeur faites Alt F11 pour accéder a l'éditeur.

    Insertion module et vous collez ce code:

    Option Explicit
    
    Public lecture As Boolean
    


    Ensuite cliquez sur ThisWorkBook en haut à gauche et mettez ce code:

    Option Explicit
    Sub lectureseule()
    If ActiveWorkbook.ReadOnly Then
    lecture = True
            'MsgBox "Le fichier a été ouvert en lecture seule"
        Else
        lecture = False
           ' MsgBox "Fichier n'a pas été ouvert en lecture seule"
        End If
    End Sub
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If lecture = True Then
    Cancel = True
    End If
    End Sub
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        If lecture = True Then
     Application.ThisWorkbook.Saved = True
        End If
    End Sub
     Private Sub Workbook_Open()
    lectureseule
    End Sub
    


    Vous enregistrez le classeur et vous le mettez en lecture seule, vous n'aurez plus de message le classeur se fermera.

    0
    1. Modérateur
      Bonjour,

      On ne sait pas trop de quoi tu parles mais bon... J'imagine que tu as eu macro qui fait un enregistrement, mais tu ne veux pas de cela si le classeur est en lecture seule... J'ai bon ?

      Tu peux mettre ceci :

      If Not ActiveWorkbook.ReadOnly Then
      ActiveWorkbook.Save
      End If

      m@rina

      0
      1. Bonsoir Le Pivert et Marina

        Tout d'abord à "Le Pivert" : merci bien pour le code. J'ai compris la philosophie, ça fonctionne mais c'est compliqué (ne m'en veut pas !)

        @ Marina :
        J'ai essayé Classeur non occupé : ça fonctionne.
        J'ai essayé Classeur occupé par une autre personne : ça fonctionne

        Je vous remercie bien tous les 2.
        Passez une bonne soirée !
        0