Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Verrouillage cellules remplies après enregistrement fichier

Elsapr67

XLDnaute Nouveau
Bonjour,

Je suis nouvelle sur le forum et je tiens à m'excuser si la question a déjà été posée.
J'ai fait plusieurs recherches mais je n'ai pas exactement trouvé ce que je voudrais (même si j'ai trouvé de supers articles )

J'ai actuellement un fichier Excel basique avec des colonnes à renseigner (date, heure de début, heure de fin...).

J'aimerais pouvoir verrouiller les cellules remplies dès lors que le fichier est enregistré, soit par l'intermédiaire de la disquette d'enregistrement soit éventuellement via un bouton de formulaire.

Je ne sais pas si cela est possible (je ne suis pas très douée avec les macros).
 

Pièces jointes

  • Test rapport.xlsm
    9.6 KB · Affichages: 3

Elsapr67

XLDnaute Nouveau
Bonjour @Elsapr67 et bienvenue sur XLD

Je te propose ce fichier

Merci de ton retour
Bonjour,

Super, c'est bien ça que je souhaitais. Merci pour votre aide!!!

J'aurais aimé comprendre, lorsque je fais un copier / coller ou une saisie de la macro de votre fichier sur mon fichier "Test Rapport" d'origine ça ne fonctionne pas. Je vais saisir toutes données nécessaires dans la ligne "B3" j'enregistre soit avec la disquette soit via la fenêtre d'enregistrement qui apparait en cliquant sur la croix mais en réouvrant mon fichier les données préalablement saisies sont modifiables (j'ai ôter la protection de la feuille,...). sauriez-vous d'où cela peut venir? est-ce que je dois sélectionner une option particulière?
 

Phil69970

XLDnaute Barbatruc
@Elsapr67

Dans cette version V2 le verrouillage est sur l'enregistrement du fichier comme demandé.
J'ai commenté le code pour que tu le comprennes
A noter les N° ne sont pas bloqués mais si tu veux on peut les bloquer
La V3 avec les N° bloqués tu pourras choisir quelle version te convient le mieux

Merci de ton retour
 

Pièces jointes

  • Verrouillage V2.xlsm
    31.1 KB · Affichages: 3
  • Verrouillage V3.xlsm
    31.1 KB · Affichages: 1
Dernière édition:

Elsapr67

XLDnaute Nouveau
Bonjour,

Ah super, ça fonctionne (j'avais pas vu le deuxième code...) !!

Merci beaucoup pour votre aide et les commentaires !!

Je vais clôturer la discussion.
 

job75

XLDnaute Barbatruc
Bonjour,

Essayez quand même dans ThisWorkbook :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim c As Range
With ActiveSheet
    .Protect UserInterfaceOnly:=True
    .Cells.Locked = False
    For Each c In .UsedRange
        If Not IsEmpty(c) Then c.MergeArea.Locked = True
    Next
End With
End Sub
Je vous laisse vous renseigner sur UserInterfaceOnly:=True

A+
 

Pièces jointes

  • Test.xlsm
    18.7 KB · Affichages: 2

job75

XLDnaute Barbatruc
Sans boucle :
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next 'si aucune SpecialCell
With ActiveSheet
    .Protect UserInterfaceOnly:=True
    .Cells.Locked = False
    .Cells.SpecialCells(xlCellTypeConstants).Locked = True
    .Cells.SpecialCells(xlCellTypeFormulas).Locked = True
End With
End Sub
 

Pièces jointes

  • Test.xlsm
    18.6 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…