XL 2016 Verrouiller une cellule après sa saisie ?

MartiKush

XLDnaute Nouveau
Bonjour à tous !

Voilà, je suis en train d'élaborer un fichier Excel type "cahier de consigne" et j'ai un soucis.

Je souhaiterais qu'une fois la saisie faite, la cellule se bloque automatiquement et que l'on ne puisse plus la modifier sans mot de passe.

J'ai trouvé quelques bouts de code à adapter sur divers forums mais rien n'y fait, j'ai toujours une erreur de VBA, je dois pas m'y connaître assez je pense et je passe à côté de quelque chose, voici donc la raison de mon post.

Je vous joins le fichier Excel que vous puissiez y jeter un oeil. Je met aussi un screen des zones que je souhaite verrouiller après saisie. Si jamais quelqu'un y arrive, ce sera mon sauveur :D

Merci d'avance pour votre aide.

Le screen :
1583348745395.png

Marti.
 

Pièces jointes

  • Classeur1.xlsx
    25.1 KB · Affichages: 16

Jacky67

XLDnaute Barbatruc
Bonjour,

Fusionner les cellules dans ce cas, n'est pas une bonne idée
Est-ce vraiment nécessaire ?
Une piste en Pj qui bloque les colonnes G et J si elles sont saisies et protège la feuille par mot de passe
Dans l'exemple j'ai enlevé les fusions sur ces colonnes et sur les lignes
Les codes se trouvent dans le ThisWorkbook et dans le module de la feuille 31
MDP==>toto
 

Pièces jointes

  • Classeur1.xlsm
    28.2 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour MartiKush et bienvenu sur XLD, Bonjour Jacky.
Voici en PJ un essai, en supposant que c'est la colonne consigne qui est à sécuriser. Ce n'était pas très clair.

Mais je voudrais préciser que :
1- Ce n'est pas une sécurité contre la volonté de nuire ( pour cela il suffit d'invalider les macros ) mais simplement pour éviter les maladresses. D'ailleurs même les mot de passe feuille sont facilement crakables.
2- Le VBA a horreur des cellules fusionnées, car très difficile à analyser.

J'ai donc :
1- Supprimer les cellules fusionnées. ( Pour cela il suffit de jouer sur les largeurs et hauteurs cellules )
2- J'ai pris le choix que quand on clique sur une cellule protégée, on va directement sur la cellule à gauche. Donc impossibilité de modifier la cellule sauf à entrer le mot de passe : poiu
Tout est modifiable dans la macro : mot de passe, colonne à sécuriser ....

En espérant que cela vous convienne.
Il existe d'autres méthodes plus ou moins complexes mais tout dépend de votre niveau de sécurité requis.
 

Pièces jointes

  • Classeur1 (2).xlsm
    22.7 KB · Affichages: 11

Jacky67

XLDnaute Barbatruc
Bonjour MartiKush et bienvenu sur XLD, Bonjour Jacky.
Voici en PJ un essai, en supposant que c'est la colonne consigne qui est à sécuriser. Ce n'était pas très clair.

Mais je voudrais préciser que :
1- Ce n'est pas une sécurité contre la volonté de nuire ( pour cela il suffit d'invalider les macros ) mais simplement pour éviter les maladresses. D'ailleurs même les mot de passe feuille sont facilement crakables.
2- Le VBA a horreur des cellules fusionnées, car très difficile à analyser.

J'ai donc :
1- Supprimer les cellules fusionnées. ( Pour cela il suffit de jouer sur les largeurs et hauteurs cellules )
2- J'ai pris le choix que quand on clique sur une cellule protégée, on va directement sur la cellule à gauche. Donc impossibilité de modifier la cellule sauf à entrer le mot de passe : poiu
Tout est modifiable dans la macro : mot de passe, colonne à sécuriser ....

En espérant que cela vous convienne.
Il existe d'autres méthodes plus ou moins complexes mais tout dépend de votre niveau de sécurité requis.
Bonjour sylvanu :)
Attention, en cas de sélection multiple on peut supprimer le contenu et refaire une saisie sans MDP.:oops:
 

Scorpio

XLDnaute Impliqué
Bonjour à vous,
Je serais intéressé d'utiliser le code qui bloque la colonne "D" une fois la saisie effectuée, mais je ne suis pas fin connaisseur pour faire une correction sur un code VBA.
En fait, j'aimerais pouvoir bloquer aussi la colonne "C" et "E".
Merci pour votre aide, et à ++++++
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans cette PJ les colonnes CDE sont bloquées.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    NonVide = 0
    If Target.Column >= 3 Or Target.Column >= 5 Then                   ' Ne traite que les colonnes CDE
        For Each cel In Selection                                       ' Détection cell non vide dans toute la plage
            If cel.Value <> "" Then
                NonVide = 1
            End If
        Next
        If NonVide = 1 Then                                             ' Si cellule(s) non vide(s) alors
            If InputBox("Entrez votre mot de passe :") <> "poiu" Then   ' Mot de passe demandé
                Cells(Target.Row, 2).Select                             ' Si Faux, on va en colonne C
                Exit Sub                                                ' Et on sort
            End If
        End If
    End If
Fin:
End Sub
Pour changer les colonnes, il faut jouer sur les valeurs 3 et 5 sachant que la colonne 1 est la colonne A.
Code:
If Target.Column >= 3 Or Target.Column >= 5 Then
 

Pièces jointes

  • Classeur1 (4).xlsm
    23.2 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Jacky, je n'ai pas cherché à tout verrouiller. Vous savez bien que sous XL c'est tout simplement impossible.
Mais uniquement d'éviter les maladresses et les erreurs de saisie comme je l'ai dit au post #3.
Ce n'est pas une sécurité contre la volonté de nuire ( pour cela il suffit d'invalider les macros ) mais simplement pour éviter les maladresses
Le seul moyen réel de se protéger est Chiffrer le document. Mais c'est lourd si ce n'est que pour se protéger d'une maladresse.
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 149
dernier inscrit
Deepkneec