interdire l'utilisation de certaines touches du clavier

  • Initiateur de la discussion fred
  • Date de début
F

fred

Guest
Bonjour à tous,
est-il possible d'interdire à un usager l'utilisation de certaines touches du clavier ? Je souhaiterais en effet ne lui laisser que les touches numériques du pavé du même nom en plus de la souris tout en m'octroyant la possiblité par une combinaison de touches d'annuler et de rétablir cette interdiction.
Merci à tous
@+
 
M

michel

Guest
bonjour Fred

plutot que de désactiver une partie du clavier , la macro ci dessous annule la saisie lorsque la valeur n'est pas numerique .


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not IsNumeric(Target) Then
MsgBox "Saisie incorrecte . "
Application.Undo
End If
End Sub

j'espere que cela pourra t'aider

bon apres midi
michel
lapin4.gif
 
F

fred

Guest
Re-bonjour,
j'ai testé ta macro Michel,
mais elle ne me convient pas ou alors j'ai merdé quelque part.
En effet j'aurai souhaité, dès la touche entrée enfoncée,
que la Msgbox apparaisse, or là, le message ne s'affiche que
lors de la re-sélection de la cellule contenant des données non numériques.
Help...
 
F

fred

Guest
Re-bonjour,
Je n’arrive pas à utiliser la macro de sélection de plage de cellules avec suppression des données ci-dessous comprise dans un module
Sub nettoyage
Sheets("feuil1").Select
Range("a1:m6").Select
Selection.ClearContents
End Sub
avec la macro proposée par Michel sur la feuil1
alors qu’avec
Range("a1"). Select
Selection.ClearContents
il n’y a aucun problème. On dirait que la sélection d’une plage de cellules est incompatible avec la surveillance de la saisie.
Et encore merci.
 
P

Pascal76

Guest
Salut Fred

En regardant je me suis apperçu que la formule que t'as donné Michel ne marchait que si une seule cellule était activé.
Par exemple tu sélectionnes 3 cellules tu rentres un nombre et tu fais Ctrl Entrée et là tu rentre dans une boucle dont tu ne peux sortir. Et je pense que ton problème pour effacer viens de là.
Donc voici un petiot ajout à la macro de michel

Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target
If Not IsNumeric(cell) Then
MsgBox "Saisie incorrecte . "
Application.Undo
End If
Next
End Sub

Bon courage

Pascal
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 342
Membres
103 821
dernier inscrit
Lorient56