Protection Cellule

Bonjour à tous,

Depuis hier je cherche à protéger certaine cellule d'une feuille, sans succès. J'ai lu pas mal de conseil ( "Protéger Feuiller", "Format de cellule" + "Vérouiller" ... )

Voila ce que je cherche à faire, un petit exemple :

  • Une feuille
  • 2 cellule( A1 & B1 )
Je cherche à ce que l'utilisateur :
  • ne puisse pas sélectionner A1( pour cela je pense qu'il faut vérouiller A1 et protéger simplement la feuille.
  • puisse sélectionner B1 ( donc la je ne vérouille pas la cellule ), mais je voudrais pas qu'il puisse modifié la cellule ( et la je sèche )

si quelqu'un aurait une idée, je suis preneur

Bonjour,

Dans le "format cellule" de la case A1, onglet protection tu coches "vérouiller" et masquer" (donc impossible de modifier et de voir le contenu de la formule) et pour la cellule B1, tu fais juste "vérouiller" (on peut voir la formule mais pas la modifier). Enfin, tu protèges la feuille.

@+

Arnaud.

Merci pour ta réponse,

J'ai testé mais cela permet toujours à l'utilisateur de sélectionner la cellule A1. Et si je décoche "Sélectionner les cellules verrouillés", dans ce cas la je ne peux plus sélectionner B1.

J'ai trouvé une solution alternative. Sélectionnez B1, allez dans "Données", "Validation" et mettre "Longueur de texte" avec un minimum de 500 car et spécifier un message d'erreur du style "Modification non permise".

Mais bon ... si quelqu'un à une solution plus propre

Bonjour,

Je ne sais pas si j'ai bien compris ce que tu veux faire, mais tu peux :

  • cliquer sur la case neutre au-dessus de la ligne 1 (ou à gauche de l'indice de colonne A) pour sélectionner ta feuille complète
  • verrouiller toutes les cellules
  • sélectionner ensuite uniquement les cellules voulues dé-verrouiller, et leurs appliquer le format non-verrouillé.

A +

Tu as bien compris, mais je cherche en plus à interdire la modification ou suppression du contenu des cellules que l'utilisateur peux sélectionner ( celle qui ne sont pas vérouiller )

Alors je pense que ton idée de passer par Données->Validation est la meilleure.

Pour limiter encore les choix possible, tu peux choisir dans Données->Validité une liste (plage de cellule) située par exemple sur une plage protégée en écriture.

C'est ce que je me disais, vu que les cellules sont remplies avec des formules, j'ai joué sur la longueur du texte saisie. ( si moins de 500 caractère saisie afficher message "Modification non permise ).

Mais je viens de m'apercevoir que l'utilisateur peux simplement effacer le contenu de la cellule et cela ne marque aucun message d'erreur.

Effectivement, si tu ne peux pas créer une liste autorisée, et que tu dois pouvoir saisir n'importe quoi dans ta cellule, la suppression complète est alors possible.

Tu peux toujours essayer une validation personnalisée avec pour formule :

=B1<>""

(case à cocher Ignorer si vide non cochée)

Bonjour,

Je m'immisce dans la conversation avec une question : pourquoi vouloir ne pas verrouiller B1 ? ça serait tout de même plus simple puisque tu veux empêcher toute modification...

Bélug : Effectivement ca résoudrais le pb merci.

V_Elbie : Je n'ai pas trouvé de fonction qui permettait de sélectionner une cellule mais qu iempechait toute modification.

Mais je viens de trouver une tite fonction qui pourrait faire quelque d'assez propre :

Private Sub PasTouche(LaCellule As Range, PlageAutorisée As Range)
'Laurent Mortézai, mpfe

  If Intersect(LaCellule, PlageAutorisée) Is Nothing Then
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
  End If
End Sub

Avec un appel de cette fonction sur

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
PasTouche Target, Range("A1:A1")
End Sub

Il me reste juste une chose à voir pour quoi ca me marque une erreur "1004" ... "La méthode Undo de l'objet _Application a échoué.

Je pense que ça dépend de la version de Excel sur laquelle tu travailles.

Dans 2003, quand tu protèges, tu peux choisir de permettre ou non de sélectionner les cellules verrouillées, il y a tout une série de cases à cocher... ce qui n'est pas le cas sur excel 2000, qui est plus limité en matière de choix de la protection

Bonjour

Une solution sans protection de la Feuille

Le Code de Feuil1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a1:b1")) Is Nothing Then Range("b1").Select
End Sub

Interdit la sélection de A1

et le code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
     If Not Application.Intersect(Target, Range("B1")) Is Nothing Then
           If ActiveCell.Value = "" Then Application.Undo
    End If
End Sub

Interdit toute modification de B1

Fichier joint

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/O4EiNClasseur1.xls

impec, gros merci

Salut

Je comprends pas trop l'interet de vouloir selectionner une cellule que tu ne souhaite pas modifier?

tu peux detailler ce que tu compte en faire?

Je travaille avec plusieurs feuilles :

  • 1ere feuille : calendrier ( et je ne voulais que l'utilisateur ne puisse sélectionner que les cellule avec les valeurs 1, 2 ... 31 ... correspondant au jourd du mois
  • 2eme feuille : contient quelques paramètres, et liste de menu déroulant

Sur la 1ere feuille j'ai en plus un bouton qui lancé un code VBA pour récupérer des données dans certaisn fichiers, puis met en forme et imprime.

Simplement comme ce n'est pas moi qui vais utiliser ce fichier, je préfère brider au maximum les possibilités d'erreurs.

Maintenant je rencontre un autre problème, mais je vais créer un autre sujet puisque celui-ci est résolu

Rechercher des sujets similaires à "protection"