IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB]Convertir chiffres en lettres


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [VB]Convertir chiffres en lettres
    Bonjour,

    Je fais un programme qui doit tirer 4 lettres au hasard, seulement je crois que je ne peux lui faire tirer que des chiffres.
    Pour tirer les chiffres j'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Randomize
    nb1 = Int(Rnd() * 10)
    Mais je ne sais pas comment les convertir en lettres (il me semble que je dois me baser sur le caractère ascii ??)

    Vous pouvez m'aider?

    Merci

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    1- Commence par générer un nombre aléatoire entre 1 et 26
    2- Avec la fonction Asc, tu peux t'apercevoir que le code ASCII de A est de 65 et celui de Z est de 90, tu devrais t'en tirer donc avec la fonction qui effectue l'opération inverse : Chr
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Xo
    1- Commence par générer un nombre aléatoire entre 1 et 26
    J'utilise ma fonction Int ou autre chose?
    Citation Envoyé par Xo
    2- Avec la fonction Asc, tu peux t'apercevoir que le code ASCII de A est de 65 et celui de Z est de 90, tu devrais t'en tirer donc avec la fonction qui effectue l'opération inverse : Chr
    J'ai le code ASCII des lettres de A à Z sous les yeux, mais je vois pas le rapport entre un nombre de 1 à 26 et les codes ASCII

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Voilà j'ai résolu mon problème, je vous mets le code au cas où ça pourrait servir à quelqu'un d'autre.
    Donc dans cet exemple lorsque je clique le programme tire 4 lettres au hasard et me les affiche dans une boîte de dialogue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub B_MOT_Click()
    Do
    Randomize
    nb1 = Int(Rnd() * 90)
    Loop While nb1 < 65
    Do
    Randomize
    nb2 = Int(Rnd() * 90)
    Loop While nb2 < 65
    Do
    Randomize
    nb3 = Int(Rnd() * 90)
    Loop While nb3 < 65
    Do
    Randomize
    nb4 = Int(Rnd() * 90)
    Loop While nb4 < 65
    lettre1 = Chr(nb1)
    lettre2 = Chr(nb2)
    lettre3 = Chr(nb3)
    lettre4 = Chr(nb4)
    MsgBox lettre1 & " " & lettre2 & " " & lettre3 & " " & lettre4
    End Sub

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Remarque 1 : avec ton code, tu n'obtiendras jamais 90 donc pas de Z ...
    Remarque 2 : Pourquoi générer un nombre entre 0 et 90 ? Il suffit d'en générer un entre 1 et 26, et de lui ajouter ce qu'il faut

    1- génération d'un nombre aléatoire entre 1 et 26
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Randomize
    nb1 = 1 + Int(Rnd() * 26)
    1bis- génération d' un nombre aléatoire entre 65 et 90
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Randomize
    nb1 = 65 + Int(Rnd() * 26)
    je te laisse simplifier ton code
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok voilà le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub B_MOT_Click()
    Randomize
    nb1 = 65 + Int(Rnd() * 26)
    Randomize
    nb2 = 65 + Int(Rnd() * 26)
    Randomize
    nb3 = 65 + Int(Rnd() * 26)
    Randomize
    nb4 = 65 + Int(Rnd() * 26)
    LETTRE1 = Chr(nb1)
    LETTRE2 = Chr(nb2)
    LETTRE3 = Chr(nb3)
    LETTRE4 = Chr(nb4)
    MsgBox LETTRE1 & " " & LETTRE2 & " " & LETTRE3 & " " & LETTRE4
    End Sub

  7. #7
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Je ne crois pas que tu aies besoin d'appeller Randomize plusieurs fois.

    une petite boucle, avec un tableau, et ce serait impec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub B_MOT_Click()
        Dim sLettre(3) as String
        Dim i as Integer
        Dim sMot as String
     
        Randomize
     
        sMot = ""
     
        For i = 0 To 3
            sLettre(i) = Chr(65 + Int(Rnd() * 26))
            sMot = sMot & sLettre(i) & " "
        Next i
     
        sMot = Trim(sMot) 'enlève le dernier espace
     
        MsgBox sMot
    End Sub
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Convertir chiffres en lettres avec changement de la devise
    Par sbobo dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/06/2013, 17h54
  2. convertir chiffre en lettre arabe
    Par infomap dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/11/2011, 17h24
  3. oracle + convertir chiffres en lettres
    Par florine dans le forum SQL
    Réponses: 60
    Dernier message: 21/07/2011, 14h52
  4. convertir chiffre en lettre arabe
    Par infomap dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/04/2011, 19h39
  5. convertir chiffre en lettre arabe
    Par DzBadBoy dans le forum Langage
    Réponses: 13
    Dernier message: 21/09/2009, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo