Limitation des effet de la modification de la touche delete

Résolu
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008 - 10 sept. 2008 à 16:58
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008 - 12 sept. 2008 à 11:22
bonjour a tous

Voici ce que j'ai ecris dan mon editeur vba afin de modifier les effets de la touche delete (saisir rien au lieu d effacer) afin d arreter le probleme mismatch que j avais auparavant a chaque utilisation de cette touche
dans un module
Sub Rien()
ActiveCell.Value = ""
End Sub
dans la feuille
Private Sub Worksheet_BeforeClose(Cancel As Boolean)
Application.OnKey "{DELETE}"
End Sub
et dans this worbook
Private Sub Workbook_Open()
Application.OnKey "{DELETE}", "Rien"
End Sub
Or il se trouve que les effets de la modification de se limite pas au document concerne mais s applique a chaque document ouvert sur excel tant que ecel n a pas ete totalement ferme. des lors a chaque utilisation de la touche delete sur un autre document, une fenetre s ouvre demandant si l on souhaite autoriser ou non les macros.
J'ai bien essayer de modifier en supprimant l element de this workbook en placant ceci a la place dans le code de la feuille
Private Sub Worksheet_open(Cancel As Boolean)
Application.OnKey "{DELETE}", "Rien"
End Sub
Mais le message de mismatch reapparait.
Pourriez vous svp m'aider a limiter les effets de la modification au seul document en question?

merci beaucoup par avance

4 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 sept. 2008 à 18:16
Salut,

dans la feuille <-------------- je pense que le probleme vient de la car cette evenement n'existe pas !
Private Sub Worksheet_BeforeClose(Cancel As Boolean)
Application.OnKey "{DELETE}"
End Sub

par contre le code suivant reactivera la touche delete à la fermeture du classeur

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{DELETE}"
End Sub

mais si tu veux etre sur de limiter tout ça a ton classeur ce qui suit devrait faire l'affaire :

Private Sub Workbook_Activate()
    Application.OnKey "{DELETE}", ""
End Sub

Private Sub Workbook_Deactivate()
    Application.OnKey "{DELETE}"
End Sub
3
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008
11 sept. 2008 à 10:31
Bonjour bigfish_le vrai



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 





Tout d’abord merci pour ta reponse






 






Mais malheureusement le code que tu me proposes a exactement les memes effets que mon code initial : si l’utilisateur ne ferme pas totalement excel a chaque fois qu’il utilise la touche delete dans un autre fichier (ouvert pendant l’utilisation du mien ou ouvert apres) excel lui demande l’autorisation d’activer les macros de mon fichier qui a été ferme…






 






J’ai pense a appliquer le code que tu m’as donne a la feuille ( mon fichier ne contient qu’une feuille)






 







Private Sub Worksheet_Activate()






    Application.OnKey "{DELETE}", "rien"







End Sub








Private Sub Worksheet_Deactivate()




    Application.OnKey "{DELETE}"






End Sub







Mais la le probleme de mismatch reapparait.




 






Apres c’est peut etre du au fait qu’avec ton code j’appelle la macro

Rien






Car il me semble que le code que tu m’as propose inhile la touche delete. Or pour moi il faudrait qu’elle saisisse un vide parce que les utilisateurs de mon fichier n’utilise que cette touche pour effacer






 






Merci encore
0
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008
11 sept. 2008 à 16:42
Rebonjour a tous,

Un autre solution a mon probleme peut etre de resoudre le probleme mismatch et ainsi ne pas etre obligee de changer les ordres de la touche delete.

Svp est ce que quelqu'un pourrait m'expliquer en quoi consiste le probleme mismatch pour que je sache ou regarder ??
cependant si vous avez des astuces pour mon probleme initial je suis tout autant interessee

merci par avance

Emilie
0
lilikel Messages postés 20 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 12 septembre 2008
12 sept. 2008 à 11:22
Merci encore bigfish le vrai

autant pour moi je n avais pas bien lu ton post desolee
Ce code me convient tres bien merci
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "{DELETE}"
End Sub
Il fallait simplement que je le place au bon endroit

Encore desolee et merci c est parfait

Emilie
0
Rejoignez-nous