Bonjour,
je suis hyper super debutant en programmation, et je veux poser une petite question,
Voila mon code et mon application.
le voila le code :
Private Sub Text1_Change()
If Text1.Text = "a" Or "A" Then
Text2.Text = "1ère lettre de l'alphabet"
End If
If Text1.Text = "b" Or "B" Then
Text2.Text = "2ème lettre de l'alphabet"
End If
If Text1.Text = "c" Or "C" Then
Text2.Text = "3ème lettre de l'alphabet"
End If
If Text1.Text = "d" Or "D" Then
Text2.Text = "4ème lettre de l'alphabet"
End If
If Text1.Text = "e" Or "E" Then
Text2.Text = "5ème lettre de l'alphabet"
End If
If Text1.Text = "f" Or "F" Then
Text2.Text = "6ème lettre de l'alphabet"
End If
If Text1.Text = "g" Or "G" Then
Text2.Text = "7ème lettre de l'alphabet"
End If
End Sub
et voila le message d'erreur qui apparait (sans les guillements " " ) : " run-time error '13':
Private Sub Text1_Change()
If LCase(Text1.Text) = "a" Then
Text2.Text = "1ère lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "b" Then
Text2.Text = "2ème lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "c" Then
Text2.Text = "3ème lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "d" Then
Text2.Text = "4ème lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "e" Then
Text2.Text = "5ème lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "f" Then
Text2.Text = "6ème lettre de l'alphabet"
ElseIf LCase(Text1.Text) = "g" Then
Text2.Text = "7ème lettre de l'alphabet"
End If
End Sub
' autre technique, prenant en compte TOUTES les lettres alpha :
' a = Chr(97)
' z = Chr(122)
Private Sub Text1_Change()
Dim PlaceAlpha As Long
If Len(Text1.Text) = 1 Then
PlaceAlpha = Asc(LCase(Text1.Text)) - 96
Select Case PlaceAlpha
Case 1: Text2.Text = CStr(PlaceAlpha) & "ère lettre de l'alphabet"
Case Else: Text2.Text = CStr(PlaceAlpha) & "ème lettre de l'alphabet"
End Select
ElseIf Len(Text1.Text) = 0 Then
Text2.Text = vbNullString
Else
MsgBox "Caractère(s) non prévu(s), veuillez reformuler !": Text1.Text = vbNullString
End If
End Sub
Je conteste l'utilisation faire par 865934 yassine_imou de l'événement change !
Mais s'il y tient tant, voilà une façon (parmi yne foule d'autres)
:
Private Sub Text1_Change()
couic = Right(Text1.Text, 1)
If UCase(couic) Like "[!A-Z]" Then Exit Sub
suff = IIf(Asc(UCase(couic)) - 64 > 1, "ème", "ère")
MsgBox couic & " est la " & (Asc(UCase(couic)) - 64) & suff & " lettre de l'alphabet"
End Sub
Bonsoir à tous
Cette erreur est un bug de XP
Il faut charger XP Pack3 pour y remédier.
NB J'ai trouver la réponse sur le net, tu aurrait pu d'abord faire cette démarche.
Si tu ne sais pas comment faire, tu tape le libellé de l'erreur dans un moteur de recherche, à l'occurence j'ai employé Google et la réponse est là.
Mortalino. Trop de code pour rien ! autant détecter en faisant lettre.tolower et en fonction de la valeur ASCII du la lettre dire en une ligne la combien de lettre c'est. Juste avec la différence de z en ASCCI moi la valeur chiffre de l'ASCII de la lettre.