Transformer des lettres en chiffres et inversement

Résolu
progr Messages postés 5 Statut Membre -  
progr Messages postés 5 Statut Membre -
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

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. PlacageGranby Messages postés 402 Statut Membre 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
  3. progr Messages postés 5 Statut Membre
     
    Merci beaucoup pour vos réponses ^^.
    0
  4. PlacageGranby Messages postés 402 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. progr Messages postés 5 Statut Membre
     
    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