verrouillé automatiquement cellule une fois saisie

LE GUERROUE

XLDnaute Nouveau
Bonjour,
Dans le cadre de mon travail je dois créer un fichier excel de type registre. Ce registre dois pouvoir etre rempli au fil de l'eau par les équipes (fichier en réseau) mais les valeurs ne doivent pas pouvoir être modifiées une fois saisie.
Avez vous une solution pour verrouillé les cellules une fois remplie?
Plutôt à l'aise avec excel je ne connait pas assez le VBA...
Merci d'avance,
Audrey
 

youky(BJ)

XLDnaute Barbatruc
Bienvenu sur le forum et bonjour,
A tester sur un fichier d'essai
Voici les manip
Sélectionner toutes les cellules
Aller en format de cellules >Protection >décocher Verrouiller
Faire 1 click bouton droit de souris sur le nom de l'onglet en bas
et dans le menu choisir >visualiser le code
dans la fenetre blanche copier tout ce code

>>>Remplacer "toto" par le bon mot de passe

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "toto"
Target.Locked = True
ActiveSheet.Protect "toto"
End Sub

Bruno
 

youky(BJ)

XLDnaute Barbatruc
Content que tu pousses ta curiosité un peu plus loin . . .
Code avec demande de confirmation
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If MsgBox("Valider pour ....." & Target, vbYesNo + vbExclamation, "CONFIRMATION") = vbNo Then
Application.EnableEvents = False   'évite événement Change
Target = ""    'on efface
Application.EnableEvents = True  'remet événement
Else
ActiveSheet.Unprotect "toto"
Target.Locked = True
ActiveSheet.Protect "toto"
End If
End Sub
Bruno
 

youky(BJ)

XLDnaute Barbatruc
Audrey,
Voici pour 3 colonnes tu peux en rajouter facilement en macro
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
lig = Target.Row
tx = Cells(lig, 1) & " " & Cells(lig, 2) & " " & Cells(lig, 3) 'ici colonne 1 à 3
If MsgBox("Valider pour ....." & tx, vbYesNo + vbExclamation, "CONFIRMATION") = vbNo Then
Application.EnableEvents = False   'évite événement Change
Target = ""    'on efface
Application.EnableEvents = True  'remet événement
Else
ActiveSheet.Unprotect "toto"
Target.Locked = True
ActiveSheet.Protect "toto"
End If
End Sub

Pour les dates et heure
Formule en E1 =(C1+D1)-(A1+B1)
Le format de cellule en E1 est personnalisé [h]:mm
Si besoin en macro tu dois maintenant savoir faire.
Bruno
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi