ActiveWorkbook.Save hors Lecture seule

Résolu/Fermé
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 6 janv. 2015 à 12:53
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 6 janv. 2015 à 18:23
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 !

A voir également:

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
6 janv. 2015 à 15:23
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
m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
6 janv. 2015 à 15:24
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
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
6 janv. 2015 à 18:23
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