Verrouillage d'une cellule après enregistrement du fichier

Fermé
Anou59491 Messages postés 4 Date d'inscription vendredi 24 avril 2015 Statut Membre Dernière intervention 1 mai 2015 - 1 mai 2015 à 17:27
via55 Messages postés 14473 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 septembre 2024 - 1 mai 2015 à 18:56
Bonjour,

Je viens à vous car je dois réaliser une mission pour mon stage.
Je réalise un document excel destiné à être utilisé par les vendeurs de notre entreprise.
J'aimerai qu'après avoir fait leur saisir dans une case, et après avoir rentré la date de la saisie dans une autre case, que celles ci soient verrouillés après que l'utilisateur ai enregistré le fichier.
Cela est dans le but d'empêcher toute modifications dans ces deux cases par quiconque par la suite.
J'espère avoir était assez claire sur le sujet, si vous avez besoin de plus d'éclaircissement n'hésitez surtout pas.

Merci beaucoup!

A voir également:

1 réponse

via55 Messages postés 14473 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 septembre 2024 2 728
1 mai 2015 à 18:56
Bonjour Anou

Une possibilté :
Après avoir protégé la feuille avec un mot de passe (ici ABCDE) mettre un macro de ce style dans This Workbook de l'éditeur VBA (ALT + F11 pour ouvrir l'éditeur Doucle clic dans this Workbook dans larborescence Copier coller la macro)
Macro pour la feuille nommée Feuil1 et pour la plage A1:Z60 avec mot de passe ABCDE (à adapter à tes besoins)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Plage As String
  Dim MotDePasse As String
  Dim nom As String
' Nom de la feuille à protéger
nom = "Feuil1"
'Plage à protéger sur la feuil1 de Excel
Plage = "A1:Z60"
'Mot de passe
MotDePasse = "ABCDE"
With Sheets(nom)
'Déprotection de la feuille 1
 .Unprotect MotDePasse
'Verrouille toutes les cellules de la plage
 .Range(Plage).Locked = True
'Deverouille les cellules vides de la plage
.Range(Plage).SpecialCells(xlCellTypeBlanks).Locked = False
'Reprotection de la feuille
  .protect MotDePasse
End With
End Sub


Cdlmnt
Via
0