Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur de compilation

5 réponses
Avatar
Apitos
Bonjour,

J'ai eu cette erreur de compilation :

Erreur de compilation:
Nombre d'arguments incorrect ou affectation de propri=E9t=E9 incorrecte

pour cette procedure :

Private Sub TextBox2_Change()
If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart,
1) <> "," Then
'MsgBox "Le caractere saisi n'est pas valide" & " " & " " &
TextBox2.SelStart & " " & TextBox2.Text[TextBox2.SelStart]
If Not IsEmpty(TextBox2) Then
TextBox2 =3D Left(TextBox2, Len(TextBox2) - 1)
End If
End If
End Sub


Merci d'avance.

5 réponses

Avatar
Corona
Bonjour Apitos,
La fonction Right a deux arguments et pas trois.
Right(TextBox2, TextBox2.SelStart) au lieu de Right(TextBox2,
TextBox2.SelStart,1)
Tu auras également un problème dans ton 2ème test si le premier
caractère tapé n'est pas un chiffre
Il vaut mieux tapez ceci
If Len(TextBox2) > 1 Then
TextBox2 = Left(TextBox2, Len(TextBox2) - 1)
Else
TextBox2 = ""
End If
Philippe

"Apitos" a écrit dans le message de news:

Bonjour,

J'ai eu cette erreur de compilation :

Erreur de compilation:
Nombre d'arguments incorrect ou affectation de propriété incorrecte

pour cette procedure :

Private Sub TextBox2_Change()
If Not IsNumeric(TextBox2) And Right(TextBox2, TextBox2.SelStart,
1) <> "," Then
'MsgBox "Le caractere saisi n'est pas valide" & " " & " " &
TextBox2.SelStart & " " & TextBox2.Text[TextBox2.SelStart]
If Not IsEmpty(TextBox2) Then
TextBox2 = Left(TextBox2, Len(TextBox2) - 1)
End If
End If
End Sub


Merci d'avance.
Avatar
Apitos
Merci Philippe.

Je vais essayé avec MID à la place de RIGHT

Je reçois le même type d'erreur lorsque je décommente cette ligne :

MsgBox "Le caractere saisi n'est pas valide" & " " & " " &
TextBox2.SelStart & " " & TextBox2.Text[TextBox2.SelStart]

Ou est l'erreur ?

Merci.
Avatar
Corona
Bonjour Apitos,
En utilisant l'événement KeyPress ce ne serait pas plus simple ?
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii ' 46 = .
Case 46, 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub

Et si tu absolument signaler l'erreur à l'utilisateur, ajoute un Beep
' KeyAscii = 0: Beep

Philippe




"Apitos" a écrit dans le message de news:

Merci Philippe.

Je vais essayé avec MID à la place de RIGHT

Je reçois le même type d'erreur lorsque je décommente cette ligne :

MsgBox "Le caractere saisi n'est pas valide" & " " & " " &
TextBox2.SelStart & " " & TextBox2.Text[TextBox2.SelStart]

Ou est l'erreur ?

Merci.
Avatar
Corona
Il y a plus court évidemment. Tout dépend de ce que l'on veut faire.
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 1 To 45, 47, 58 To 255
KeyAscii = 0: Beep
End Select
End Sub


"Corona" a écrit dans le message de news:

Bonjour Apitos,
En utilisant l'événement KeyPress ce ne serait pas plus simple ?
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii ' 46 = .
Case 46, 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub

Et si tu absolument signaler l'erreur à l'utilisateur, ajoute un Beep '
KeyAscii = 0: Beep

Philippe




"Apitos" a écrit dans le message de news:

Merci Philippe.

Je vais essayé avec MID à la place de RIGHT

Je reçois le même type d'erreur lorsque je décommente cette ligne :

MsgBox "Le caractere saisi n'est pas valide" & " " & " " &
TextBox2.SelStart & " " & TextBox2.Text[TextBox2.SelStart]

Ou est l'erreur ?

Merci.




Avatar
Apitos
Merci Corona.

Je vais m'en servir.