[VBA-E]controle de saisie dans une cellule
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:
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:
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