Transformer des lettres en chiffres et inversement

Résolu
progr Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
progr Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'aimerais pouvoir créer un programme en VBS qui me permet de transformer les lettres en chiffres et inversement. En clair je veux créer un système de hash. J'ai déjà essayé quelque lignes de code mais cela n'affichait pas le msgbox qui disait le resultat.

  dim lettrenumero1
dim reponseo1
dim motdepasse


lettrenumero1 = inputbox (" Tape ta lettre  ")

if (lettrenumero1 = "z" )then
reponseo1 = 2
if (lettrenumero1 = "a" )then
reponseo1 = 4
msgbox (" Voici "& reponseo1 &" et voila ")

else
end if
end if

Bien sur j'aurais plus de if(lettrenumero1).

Merci d'avance pour vos réponse ^^.
A voir également:

5 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Dim lettrenumero1 As String
Dim reponseo1 As Long
Dim motdepasse As String
lettrenumero1 = InputBox(" Tape ta lettre ")
Select Case lettrenumero1
Case "a": reponseo1 = 4
Case "b": reponseo1 = 6
Case "c": reponseo1 = 8

' etc
End Select
MsgBox (" Voici " & reponseo1 & " et voila ")

Cdlmnt
2
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Comme ccm81 l'indique, un select case sera beaucoup plus élégant.

L'erreur dans ton code original, si la lettre de ton inputbox était un a, donc il n'entre pas dans ta première condition if, et si c'était un z, il entre dans le premier if, mais ne passe pas la condition du deuxième.
Donc ton msgbox qui est à l'intérieur du 2ieme if, ne peut jamais jamais afficher car il faudrait que la lettre soit un a et également un z.

Quand tu veux imbriquer des if pour la même variable, tu dois utiliser elseif :

if (lettrenumero1 = "z" )then
reponseo1 = 2
elseif (lettrenumero1 = "a" )then
reponseo1 = 4
elseif .....

end if

Ci joint, un petit cours sur les conditions en VBA.
Tu y retrouve les IF, les IF imbriqués et tout en bas, les SELECT CASE, comme ccm81 l'a suggéré.

https://www.excel-pratique.com/fr/vba/conditions.php

Bonne lecture
1
progr Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour vos réponses ^^.
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Me permettre une suggestion.
Si on entre autre chose qu'une lettre, le msgbox s'affichie quand même et reponse01 égale sa valeur par défaut.
Case else va permettre de gérer une valeur non désiré.

Dim lettrenumero1 As String
Dim reponseo1 As Long
Dim motdepasse As String

Dim erreur As Boolean

erreur = False
lettrenumero1 = InputBox(" Tape ta lettre  ")
Select Case lettrenumero1
  Case "a": reponseo1 = 4
  Case "b": reponseo1 = 6
  Case "c": reponseo1 = 8
  ' etc
  Case Else: erreur = True

End Select

If erreur = False Then
    MsgBox (" Voici " & reponseo1 & " et voila ")
Else
    MsgBox ("Erreur dans l'inputbox de saisie, tappez une lettre seulement")
End If
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
progr Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Aucun problème pour cela, j'utilise des chiffres et des lettres donc il ne peut y'avoir de réponse sans valeur. Sinon les règles de VBA s'applique pour le VBS ?

Merci encore pour vos réponses j'ai réussi à finir mon mini programme.
0