Permettre la sélection mais pas la modification d'une cellule

Bonjour,

J'ai un fichier Excel protégé et une fonction double_click qui me permet de récupérer les données de la ligne correspondant à la cellule cliqué et insère ensuite la date et le nom de l'utilisateur dans cette cellule. Cependant je veux que cette cellule soit verrouillée donc que l'utilisateur ne puisse pas modifier le texte dedans mais qu'il puisse la sélectionner afin de pouvoir exécuter ma fonction double_click. Je sais que c'est possible sous Access car j'utilise un fichier qui le fait mais je ne sais pas comment le faire et je n'ai pas accès au code du fichier Access. Savez-vous comment faire ? Merci.

Bonjour,

En activant la protection de la feuille de façon standard (autorisation de sélection des cellules verrouillées et déverrouillées) puis en la désactivant à chaque évènement double clic. Un exemple des plus simple pour représenter, si vous double cliquez, test s'inscrit dans la cellule mais impossible de rentrer dedans :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect
Target = "Test"
Cancel = True
ActiveSheet.Protect
End Sub

A adapter à votre fichier.

Cdlt,

12classeur3.xlsm (13.36 Ko)

Je vous remercie de votre réponse, cependant j'ai oublié de précisé mes lignes sont dans un tableau car je veux effectuer du tri sur chaque colonne. En utilisant votre code, si je clique sur une cellule en dehors du tableau cela fonctionne mais si je clique sur une cellule se situant à l'intérieur de mon tableau et bien je peux la modifier ce que je ne veux pas. Sur la première photo on voit que cela fonctionne en dehors et la seconde on voit que je peux modifier le contenu. Comment remédier à cela ?

image image

Autant pour moi j'ai réussi à régler mon problème. Je vous remercie pour votre réponse.

Cordialement.

Bonjour,

Que ce soit un tableau ou pas ne change rien au comportement. Pour autoriser le filtre et le tri :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect
Target = "Test"
Cancel = True
ActiveSheet.Protect AllowFiltering:=True, AllowSorting:=True
End Sub

Cf fichier joint.

Normalement peut importe où vous cliquez, le message d'avertissement n’apparaît pas à l'aide du Cancel = True.

Le code est à place dans le module de la feuille.

Cdlt,

9classeur3.xlsm (14.96 Ko)
Rechercher des sujets similaires à "permettre selection pas modification"