[VBA] Remplacer touche DELETE par un BACKSPACE

Bonjour à tous,

Est-il possible de faire que lorsque quelqu'un appuie sur la touche delete, cela actionne la touche retour en arrière à la place ?
J'ai pensé à ça mais ça ne marche pas :

Application.OnKey "{DELETE}", SendKeys "{BackSpace}"

Une idée ?

Salut,

Je ne comprends pas très bien l'utilité de ce souhait, mais voici une solution en pièce jointe.

Il serait possible de limiter cette action à un certains nombre de cellules.

Amicalement.

19essai-19-11.xlsm (13.57 Ko)

EDIT : Je viens de constater que ce code ne fonctionne pas la toute première fois que l'application Excel est ouverte. Si tu ouvres ce fichier, que tu modifies la sélection et que tu cliques ''Delete'', ça efface le texte en place. Puis les autres fois, ça sélectionne la cellule directement à gauche de la cellule active.

Si tu as un autre fichier ouvert à l'écran lorsque tu refermes mon fichier puis que tu ouvres à nouveau celui-ci, ça fonctionne directement, comme si l'application avait gardé en mémoire ce changement d'affectation de la touche.

Enfin, ce changement d'affectation de touche s'applique également aux autres fichiers ouverts à l'écran !

A ta place, j'affecterais ce code spécial à une combinaison de touches à la place d'une seule telle que ''Delete''.

Salut,

Merci pour ta réponse !
Malheureusement ce n'est pas du tout ce que je cherche à faire (de sélectionner la cellule de gauche) .
Disons que j'ai des macros où quand les utilisateurs effacent la cellule avec ta touche en arrière, j'avais défini qu'un texte s'affiche que j'avais défini. En appuyant sur la touche delete la case s'efface mais pas le texte. J'ai aussi d'autres macros du style et qui ne marchent pas si on appuie sur delete, donc pour ça que j'aimerais remplacer cette touche .

Quelqu'un à une autre idée ?

Re,

Ta demande n'est pas très claire. Le but de ma démonstration était principalement que tu peux affecter une macro bien précise à une touche, mais non pas la fonction d'une autre touche, comme tu as tenté de le faire dans l'instruction que tu as présenté en premier.

Sachant que l'on peut affecter une autre utilisation à une touche que celle prévue (par exemple sélectionner la cellule de gauche, une sorte de BackSpace, lorsque l'on clique sur ''Delete), je me suis dit que tu allais pouvoir modifier mon code ''Macro_personnelle'' à tes besoins.

Mais si tu ne sais pas le faire, je pense que tu dois d'abord nous fournir ton fichier réel - ou du moins un fichier-exemple comportant tous tes codes - et indiquer ce que tu souhaites soit à la place de ce qui est déjà en place, soit ce que tu souhaites en plus.

Quand tu demandes si quelqu'un à une autre idée, ça laisse à penser que je ne suis pas capable d'en avoir une deuxième !

A te relire.

J'ai malheureusement mon fichier avec des données sensibles et pas mal de macros .
Je préfère ne pas le divulguer et simplement demander si quelqu'un connaît un moyen de remplacer la touche delete par un retour en arrière.

Je ne cherche donc pas d'alternative comme tu me l'as proposé (et je t'en remercie), mais plutôt une solution .

Bonne chance :-)

Pour ceux que ça intéresse, voici une solution qui marche :

Worksheet code :

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

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

Module code :

Sub deleteAction()
       Selection.Clear
End Sub

Par contre cela contourne les validations de données dans les cellules...
Si quelqu'un à une solution pour que cela ne contourne pas, je suis preneur

Bonjour toutes et tous

coucou Yvouille ^^

@Cedric

ce que, je ferai en imaginant suivant ta dernière requête:

1/ j'utiliserai l'enregistreur de macro pour créer une nouvelle macro pour ==>la validation de données<== (pas certain que cela fonctionne donc à tester)

2/ un module sera créé

3/ je ferai appel (Call) de cette procédure de cette nouvelle macro


crdlt, André

Hmmm je comprends peut être où tu veux en venir mais c'est une validation qui a pour but de restreindre certains caractères alors il ne faut pas que les utilisateurs puissent la contourner

Rechercher des sujets similaires à "vba remplacer touche delete backspace"