Un petit souci...
Sur une feuille protégée (sauf certaines cellules de saisie), je souhaite déclencher une macro par un double-clic sur certaines cellules seulement.
Mais au double-clic, comme la feuille est protégée, le Target peut être la cellule active, ou rien si aucune cellule n'est sélectionnée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 24/05/22 Í 11:35, ThierryP a écrit :
Bonsoir le forum, bonsoir Denis, Un petit souci... Sur une feuille protégée (sauf certaines cellules de saisie), je souhaite déclencher une macro par un double-clic sur certaines cellules seulement. Mais au double-clic, comme la feuille est protégée, le Target peut être la cellule active, ou rien si aucune cellule n'est sélectionnée. Y a-t-il un moyen de contourner ce problème ?? D'avance merci, ThierryP
Bonjour, Je n'ai pas compris ta question. Comment peux-tu faire un double-clic sur une cellule et qu'aucune cellule ne soit sélectionnée. Je sais qu’on peut empêcher la sélection sur une plage protégée, il s'agit qu'une seule cellule ne soit pas protégée et lors du double-clic, c'est cette cellule qui reçoit la sélection. Une proposition : '--------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Locked Then Cancel = True MsgBox "Cellule protégée." Else Target.Value = 25 'Ou ce que tu veux faire si la cellule est non protégée. End If End Sub '--------------------------------- MichD
Le 24/05/22 Í 11:35, ThierryP a écrit :
Bonsoir le forum, bonsoir Denis,
Un petit souci...
Sur une feuille protégée (sauf certaines cellules de saisie), je souhaite déclencher une macro par un double-clic sur certaines cellules seulement.
Mais au double-clic, comme la feuille est protégée, le Target peut être la cellule active, ou rien si aucune cellule n'est sélectionnée.
Y a-t-il un moyen de contourner ce problème ??
D'avance merci,
ThierryP
Bonjour,
Je n'ai pas compris ta question.
Comment peux-tu faire un double-clic sur une cellule et qu'aucune
cellule ne soit sélectionnée.
Je sais qu’on peut empêcher la sélection sur une plage protégée, il
s'agit qu'une seule cellule ne soit pas protégée et lors du double-clic,
c'est cette cellule qui reçoit la sélection.
Une proposition :
'---------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If Target.Locked Then
Cancel = True
MsgBox "Cellule protégée."
Else
Target.Value = 25
'Ou ce que tu veux faire si la cellule est non protégée.
End If
Bonsoir le forum, bonsoir Denis, Un petit souci... Sur une feuille protégée (sauf certaines cellules de saisie), je souhaite déclencher une macro par un double-clic sur certaines cellules seulement. Mais au double-clic, comme la feuille est protégée, le Target peut être la cellule active, ou rien si aucune cellule n'est sélectionnée. Y a-t-il un moyen de contourner ce problème ?? D'avance merci, ThierryP
Bonjour, Je n'ai pas compris ta question. Comment peux-tu faire un double-clic sur une cellule et qu'aucune cellule ne soit sélectionnée. Je sais qu’on peut empêcher la sélection sur une plage protégée, il s'agit qu'une seule cellule ne soit pas protégée et lors du double-clic, c'est cette cellule qui reçoit la sélection. Une proposition : '--------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Locked Then Cancel = True MsgBox "Cellule protégée." Else Target.Value = 25 'Ou ce que tu veux faire si la cellule est non protégée. End If End Sub '--------------------------------- MichD
ThierryP
Bonjour Denis, En me relisant, je me suis dit qu'il n'y avait que moi qui pouvait me comprendre !!! J'ai créé un calendrier dynamique, avec en colonne G le numéro de semaine et en colonnes H Í N, de Lundi Í Dimanche et sur 5 ou 6 lignes les jours du mois Semaine Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche 17 1 18 2 3 4 5 6 7 8 19 9 10 11 12 13 14 15 20 16 17 18 19 20 21 22 21 23 24 25 26 27 28 29 22 30 31 Toutes ces cellules sont protégées. Je voudrais déclencher une macro au double-clic sur la cellule qui contient le N° de semaine , mais qui est protégée. Je ne peux pas déprotéger et prendre le risque qu'un utilisateur bousille les formules ! Et donc, y a-t-il un moyen de détecter la position du double-clic ? J'espère que j'ai été plus clair, même si ma demande me paraÍ®t utopique !!!! ThierryP
Bonjour Denis,
En me relisant, je me suis dit qu'il n'y avait que moi qui pouvait me comprendre !!!
J'ai créé un calendrier dynamique, avec en colonne G le numéro de semaine et en colonnes H Í N, de Lundi Í Dimanche et sur 5 ou 6 lignes les jours du mois
Semaine Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
17 1
18 2 3 4 5 6 7 8
19 9 10 11 12 13 14 15
20 16 17 18 19 20 21 22
21 23 24 25 26 27 28 29
22 30 31
Toutes ces cellules sont protégées. Je voudrais déclencher une macro au double-clic sur la cellule qui contient le N° de semaine , mais qui est protégée.
Je ne peux pas déprotéger et prendre le risque qu'un utilisateur bousille les formules !
Et donc, y a-t-il un moyen de détecter la position du double-clic ?
J'espère que j'ai été plus clair, même si ma demande me paraÍ®t utopique !!!!
Bonjour Denis, En me relisant, je me suis dit qu'il n'y avait que moi qui pouvait me comprendre !!! J'ai créé un calendrier dynamique, avec en colonne G le numéro de semaine et en colonnes H Í N, de Lundi Í Dimanche et sur 5 ou 6 lignes les jours du mois Semaine Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche 17 1 18 2 3 4 5 6 7 8 19 9 10 11 12 13 14 15 20 16 17 18 19 20 21 22 21 23 24 25 26 27 28 29 22 30 31 Toutes ces cellules sont protégées. Je voudrais déclencher une macro au double-clic sur la cellule qui contient le N° de semaine , mais qui est protégée. Je ne peux pas déprotéger et prendre le risque qu'un utilisateur bousille les formules ! Et donc, y a-t-il un moyen de détecter la position du double-clic ? J'espère que j'ai été plus clair, même si ma demande me paraÍ®t utopique !!!! ThierryP
ThierryP
Finalement, il m'est revenu avoir vu il y a une quinzaine d'années un truc de ce genre.... Solution de contournement qui fonctionne (Í condition de ne pas avoir trop de cellules Í cliquer, sinon il faudrait créer un module de classe, mais lÍ je sèche !!!) : Insérer des images transparentes sur les cellules choisies et gérer l'évènement _MouseDown de celles-ci. ThierryP
Finalement, il m'est revenu avoir vu il y a une quinzaine d'années un truc de ce genre....
Solution de contournement qui fonctionne (Í condition de ne pas avoir trop de cellules Í cliquer, sinon il faudrait créer un module de classe, mais lÍ je sèche !!!) :
Insérer des images transparentes sur les cellules choisies et gérer l'évènement _MouseDown de celles-ci.
Finalement, il m'est revenu avoir vu il y a une quinzaine d'années un truc de ce genre.... Solution de contournement qui fonctionne (Í condition de ne pas avoir trop de cellules Í cliquer, sinon il faudrait créer un module de classe, mais lÍ je sèche !!!) : Insérer des images transparentes sur les cellules choisies et gérer l'évènement _MouseDown de celles-ci. ThierryP
MichD
Si tu protèges le projetVBA, il n'y a aucun moyen d'arrêter l'exécution d'une macro et "VOIR" la macro. Le seul message qui peut apparaÍ®tre, un message disant que la cellule est protégée seulement si tu utilises la touche F2 pour passer la cellule en mode "Édition". Ce message ne s'applique pas si tu fais un double-clic sur une cellule protégée. '---------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim GestionErreur As String Cancel = True Application.EnableCancelKey = xlDisabled With Me .Unprotect Password:="MotDePasse" End With MsgBox Target.Address ' 'MaMacro Exit Sub GestionErreur: Me.Protect Password:="MotDePasse" MsgBox Err.Number & ", " & Err.Description Exit Sub End Sub '---------------------------------------- MichD
Si tu protèges le projetVBA, il n'y a aucun moyen d'arrêter l'exécution
d'une macro et "VOIR" la macro.
Le seul message qui peut apparaͮtre, un message disant que la cellule
est protégée seulement si tu utilises la touche F2 pour passer la
cellule en mode "Édition". Ce message ne s'applique pas si tu fais un
double-clic sur une cellule protégée.
'----------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim GestionErreur As String
Cancel = True
Application.EnableCancelKey = xlDisabled
With Me
.Unprotect Password:="MotDePasse"
End With
MsgBox Target.Address '
'MaMacro
Exit Sub
GestionErreur:
Me.Protect Password:="MotDePasse"
MsgBox Err.Number & ", " & Err.Description
Exit Sub
Si tu protèges le projetVBA, il n'y a aucun moyen d'arrêter l'exécution d'une macro et "VOIR" la macro. Le seul message qui peut apparaÍ®tre, un message disant que la cellule est protégée seulement si tu utilises la touche F2 pour passer la cellule en mode "Édition". Ce message ne s'applique pas si tu fais un double-clic sur une cellule protégée. '---------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim GestionErreur As String Cancel = True Application.EnableCancelKey = xlDisabled With Me .Unprotect Password:="MotDePasse" End With MsgBox Target.Address ' 'MaMacro Exit Sub GestionErreur: Me.Protect Password:="MotDePasse" MsgBox Err.Number & ", " & Err.Description Exit Sub End Sub '---------------------------------------- MichD
MichD
Le 25/05/22 Í 06:27, MichD a écrit :
Me.Protect Password:="MotDePasse"
J'ai oublié un détail important : '---------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim GestionErreur As String Cancel = True Application.EnableCancelKey = xlDisabled With Me .Unprotect Password:="MotDePasse" End With MsgBox Target.Address ' 'MaMacro Me.Protect Password:="MotDePasse" ' ligne oubliée Exit Sub GestionErreur: Me.Protect Password:="MotDePasse" MsgBox Err.Number & ", " & Err.Description Exit Sub End Sub '----------------------------------------
Le 25/05/22 Í 06:27, MichD a écrit :
Me.Protect Password:="MotDePasse"
J'ai oublié un détail important :
'----------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim GestionErreur As String
Cancel = True
Application.EnableCancelKey = xlDisabled
With Me
.Unprotect Password:="MotDePasse"
End With
MsgBox Target.Address '
'MaMacro
Me.Protect Password:="MotDePasse" ' ligne oubliée
Exit Sub
J'ai oublié un détail important : '---------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim GestionErreur As String Cancel = True Application.EnableCancelKey = xlDisabled With Me .Unprotect Password:="MotDePasse" End With MsgBox Target.Address ' 'MaMacro Me.Protect Password:="MotDePasse" ' ligne oubliée Exit Sub GestionErreur: Me.Protect Password:="MotDePasse" MsgBox Err.Number & ", " & Err.Description Exit Sub End Sub '----------------------------------------