Erreur 13, incompatibilité de type
Résolu
patscaph
-
patscaph -
patscaph -
Bonjour,
La question est courte. Coment faire pour que l'instruction 2 soit choisie dans tous les cas si l'une des conditons n'est pas remplie??
Actuellement ça plante si TextboxCode est vide!!! avec une erreur 13 (incompatibilité de type). Aussi ça doit fonctionner pour des codes commeText/numérique ''PA116'' Merci pour votre aide
Private Sub BtnValidationCode_Click()
Dim code As Integer
code = CInt(TextboxCode.Value)
If code = "3739" Or code = "1164" Or code = "1994" Or code = "1936" Then
Instruction1
Else
Instruction 2
End If
End Sub
La question est courte. Coment faire pour que l'instruction 2 soit choisie dans tous les cas si l'une des conditons n'est pas remplie??
Actuellement ça plante si TextboxCode est vide!!! avec une erreur 13 (incompatibilité de type). Aussi ça doit fonctionner pour des codes commeText/numérique ''PA116'' Merci pour votre aide
Private Sub BtnValidationCode_Click()
Dim code As Integer
code = CInt(TextboxCode.Value)
If code = "3739" Or code = "1164" Or code = "1994" Or code = "1936" Then
Instruction1
Else
Instruction 2
End If
End Sub
A voir également:
- Erreur 13, incompatibilité de type
- Fifa 13 - Télécharger - Jeux vidéo
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Test redmi note 13 5g - Accueil - Téléphones
- Iptv erreur de lecture - Forum TV & Vidéo
- Type de ram - Guide
1 réponse
Bonjour,
Un textbox renvoie une valeur de type string.
Lorsque tu utilises CInt, tu transformes ce string en Integer.
Ok, pas de souci. Sauf si tu saisis dans ton textbox :
- AB116... Ce dernier n'est pas convertible en nombre entier....
- rien. Lorsque ton textbox est vide, il retourne la valeur "" qui est un string mais n'est pas égal à zéro. "" n'est pas convertible en nombre entier...
Par conséquent, tu devrais n'utiliser que des strings :
ou, si tu ne saisis que des nombres entiers :
j'ai donc ajouté la ligne qui évite le plantag en cas de non saisie :
et viré les " des codes dans la ligne :
Un textbox renvoie une valeur de type string.
Lorsque tu utilises CInt, tu transformes ce string en Integer.
Ok, pas de souci. Sauf si tu saisis dans ton textbox :
- AB116... Ce dernier n'est pas convertible en nombre entier....
- rien. Lorsque ton textbox est vide, il retourne la valeur "" qui est un string mais n'est pas égal à zéro. "" n'est pas convertible en nombre entier...
Par conséquent, tu devrais n'utiliser que des strings :
Private Sub BtnValidationCode_Click() Dim code As String code = TextboxCode.Value If code = "3739" Or code = "1164" Or code = "1994" Or code = "1936" Then Instruction1 Else Instruction 2 End If End Sub
ou, si tu ne saisis que des nombres entiers :
Private Sub BtnValidationCode_Click() Dim code As Integer If TextboxCode = "" Then MsgBox "Saisie obligatoire": Exit Sub code = CInt(TextboxCode.Value) If code = 3739 Or code = 1164 Or code = 1994 Or code = 1936 Then Instruction1 Else Instruction 2 End If End Sub
j'ai donc ajouté la ligne qui évite le plantag en cas de non saisie :
If TextboxCode = "" Then MsgBox "Saisie obligatoire": Exit Sub
et viré les " des codes dans la ligne :
If code = 3739 Or code = 1164 Or code = 1994 Or code = 1936 Then
patscaph
ok parfait le probème est résolu... Merci