bonjour,

je voudrais autoriser de taper que les chiffres 1,2,3,4 et 5 dans une cellule de mon tableau excel...
pour le faire dans un formulaire, j'ai fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub TextBoxNbrePosesTour_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 Dim allowedKeys As String
 allowedKeys = "12345" & Chr(8)
 If InStr(allowedKeys, Chr(KeyAscii)) = 0 Then
  KeyAscii = 0
  ImgAttention.Visible = True
  LbAttention.Visible = True
 End If
End Sub
mais pour faire celà dans une cellule, je n'y arrive pas trop... j'étais parti sur un truc du genre : (la cellule à controler est en B4)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim allowedKeys As String
 Dim reste, NbrePosesTour2
 If (Not Intersect(Target, Range("B4")) Is Nothing) Then 
  If Not mCellule Is Nothing And mCellule.Value <> "" Then
   NbrePosesTour2 = Range("B4").Value
   reste = NbrePosesTour2
   NbrePosesTour2 = ""
   Do While Len(reste) > 0
    If IsNumeric(Left(reste, 1)) Then
      NbrePosesTour2 = NbrePosesTour2 & Left(reste, 1)
    End If
    reste = Mid(reste, 2)
   Loop
   Range("B4").Value = NbrePosesTour2
  End If
 End If
End Sub
mais ce n'était que pour n'autoriser que des chiffres.

De plus cette fonction ne réagit pas lors de la frappe, mais lors de la validation de la cellule.
Y a t'il un moyen de vérifier le KeyPress sur une cellule particulière ?

merci