Cases à coch V2 de Gaetan Mourmant...

  • Initiateur de la discussion Christian
  • Date de début
C

Christian

Guest
Bonjour à tout le forum,
Bonjour Gaetan,

J'utilise l'appli 'case à cocher' de Gaetan, c'est super, simple et ça ouvre plein de possibilités... Bravo et Merci à toi Gaetan.

Je souhaiterais pouvoir verrouiller certaines cellules :
question à Gaetan et à vous le forum :

à quel endroit du code puis-je insérer la ligne de commande pour dévérouiller la feuille (ActiveSheet.Unprotect) puis pour la revérouiller (ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True).

Merci pour le temps que vous voudrez bien m'accorder.
Bien amicalement

Christian

Le code ;

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Teste si la cellule ayant recu un double-clic fait partie de la plage bd_present
'Cette plage a été définie de manière dynamique à l'aide de la fonction suivante :
' =DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$A:$A)-1)
'Voir le menu Insertion - Nom - Définir
If Not (Intersect(Target, Range('bd_present')) Is Nothing) Then
'Mise en forme de la cellule
Target.Font.Name = 'Wingdings'
Target.HorizontalAlignment = xlCenter
'Empêche la sélection de la cellule après le double-clic
Cancel = True
'Teste de la valeur de la cellule et inverse la case à cocher
Target.Value = inverse(Target.Value)
End If
End Sub
 

Gaetan

XLDnaute Nouveau
Bonjour à tous

Je pense que le code ci-dessous devrait te convenir.

Il faut cependant ne pas oublier de déverrouiller les cellules (ou la colonne) contenant les cases à cocher (utiliser le menu Format - Cellules - Protection).

Bonne journée.

Gaetan Mourmant
www.polykromy.com

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Teste si la cellule ayant recu un double-clic fait partie de la plage bd_present
'Cette plage a été définie de manière dynamique à l'aide de la fonction suivante :
' =DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$A:$A)-1)
'Voir le menu Insertion - Nom - Définir
If Not (Intersect(Target, Range('bd_present')) Is Nothing) Then
'Déverrouille la feuille
ActiveSheet.Unprotect
'Mise en forme de la cellule
Target.Font.Name = 'Wingdings'
Target.HorizontalAlignment = xlCenter
'Empêche la sélection de la cellule après le double-clic
Cancel = True
'Teste de la valeur de la cellule et inverse la case à cocher
Target.Value = inverse(Target.Value)
'reverrouille la feuille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
 
C

Christizn

Guest
Bonsoir à tout le forum,

Bonsoir Gaetan,

Merci pour ton code, j'ai toutefois un message d'erreur Sub ou Function non défine à hauteur de la ligne :
Target.Value = inverse(Target.Value) sur inverse?

Peux-tu m'éclairer

Bien amicalement

Christian
 
C

Christian

Guest
Bonsoir à tout le forum,
Bonsoir Gaetan?

Je pense que c'est mon fichier qui bug?
En effet si j'applique ton code (avec protégé/déprotégé) sur ta version 2 (que j'ai copié depuis le forum) ça marche.

Je t'envoie mon fichier sur ton site (124ko)...

Merci pour l'aide que tu m'apporte

Bien amicalement
Christian
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 857
Membres
103 979
dernier inscrit
bderradji