J'ai créé une application qui doit être utilisée essentiellement par des néophytes, donc beaucoup de bêtises et de problèmes potentiels !
J'ai donc utilisé le double-clic pour la saisie des quantités, que j'intercepte par un code beforedoubleclick.
Mais il y en a qui arrivent encore à se planter et qui trifouillent le clavier, arrivés en mode édition (quand le curseur clignote dans la cellule) c'est la panique et ils sont bloqués ...
Ma question est donc ; peut-on bloquer, annuler, empecher l'accès à ce mode édition ?
Une piste avec le code évènementiel suivant à copier dans la fenêtre de code de ThisWorkbook
Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'°°° votre traitement °°°
MsgBox "coucou" 'pour illustrer - à remplacer par votre code
'°°°°°°°°°°°°°°°°°°°°°°°°
Cancel = True
End Sub
Une piste avec le code évènementiel suivant à copier dans la fenêtre de code de ThisWorkbook
Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
'°°° votre traitement °°°
MsgBox "coucou" 'pour illustrer - à remplacer par votre code
'°°°°°°°°°°°°°°°°°°°°°°°°
Cancel = True
End Sub
Bonjour et merci
Le principe du "Cancel = True" fonctionne uniquement pour bloquer le mode édition quand on fait un double clic, mais pas quand on tape un caractère dans une cellule au clavier ou qu'on utilise la touche effacer.
Mon problème est là !
Essayez le code suivant à copier dans la fenêtre de code de ThisWorkbook
Code:
Private Sub Workbook_Activate()
Application.EditDirectlyInCell = False
End Sub
Private Sub Workbook_Deactivate()
Application.EditDirectlyInCell = True
End Sub
Cela a une incidence dans la totalité du classeur (toutes les feuilles sont affectées).
Si l'action ne doit agir que sur une seule feuille alors copiez le code suivant
dans la fenêtre de code de la feuille concernée.
Code:
Private Sub Worksheet_Activate()
Application.EditDirectlyInCell = False
End Sub
Private Sub Worksheet_Deactivate()
Application.EditDirectlyInCell = True
End Sub
Merci Patrick,
c'est exactement cette fonction qu'il me fallait !
J'avais pourtant cherché partout, mais cette fonction ne semble pas être très connue ...
Bien cordialement,
Fred