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
@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
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: 4

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

job75

XLDnaute Barbatruc
Bonjour le forum,

Je découvre un phénomène curieux en exécutant la macro du post #7.

Après copie de la plage A3:I12 sur A13:I2402 pas de problème les cellules vides sont bien déverrouillées.

Mais après copie de la plage A3:I12 sur A13:I2412 les cellules vides de la plage A3:H2402 sont verrouillées tandis que les cellules vides des plages I3:I402 et A2403:I2412 sont bien déverrouillées.

Je n'ai aucune explication, ce phénomène ne se produit pas avec la macro du post #6.

A+.
 

Discussions similaires

Statistiques des forums

Discussions
315 087
Messages
2 116 082
Membres
112 654
dernier inscrit
SADIKA