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. 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
    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. 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