Transformer des lettres en chiffres et inversement

Résolu/Fermé
progr Messages postés 5 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 26 novembre 2014 - Modifié par KX le 11/11/2014 à 14:06
progr Messages postés 5 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 26 novembre 2014 - 11 nov. 2014 à 20:07
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 ^^.

5 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
11 nov. 2014 à 14:26
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 mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 11/11/2014 à 14:58
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 mardi 11 novembre 2014 Statut Membre Dernière intervention 26 novembre 2014
11 nov. 2014 à 19:28
Merci beaucoup pour vos réponses ^^.
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
11 nov. 2014 à 19:44
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 mardi 11 novembre 2014 Statut Membre Dernière intervention 26 novembre 2014
11 nov. 2014 à 20:07
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