Texte LettreAleatoire

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour le forum

Avec l'autorisation de David, voici, en son hommage, une fonction personnalisée de Ti_ (Thierry Pourtier) permettant de renvoyer une lettre choisie aléatoirement dans un panel prédéfini.
Utilisable par VBA ou formule

Cordialement, @+
VB:
Function LettreAleatoire$()
'renvoyer une lettre aléatoire choisie parmi un panel prédéfini
'by Ti_ (Thierry Pourtier)
Const Lettres$ = "abcdefghijklmnopqrstuvwxyzéèêëàâôûù"
Randomize
LettreAleatoire = Mid$(Lettres, Int(Rnd * Len(Lettres) + 1), 1)
End Function

et sur les suggestions de Magic_Doctor et de patricktoulon , voici une version 1.1 un peu plus polyvalente gérant les caractères exotiques et laissant la possibilté de passer une chaine de caractères exotiques ou non en argument. Celui ci, étant optionnel, laisse le choix de la lettre parmi les valeurs par défaut si il est omis, voir fichier exemple.
Utilisable par VBA ou formule (avec la restriction pour VBA que l'objet supporte les caractères internationaux non latins si ceux ci sont utilisés, pas de problème pour une textbox, tous les caractères ne sont pas gérés avec une msgbox)
passage en v1.2 pour intégrer un paramétrage optionnel de la volatilité, volatile par défaut
VB:
Function LettreAleatoire$(Optional App_Vol As Boolean = 1, Optional Chn_Txt$ = "")
'renvoyer une lettre aléatoire choisie parmi un panel pré défini ou passé en argument Chn_Txt
'App_Vol=0 -> non volatile, App_Vol=1 ou omis -> volatile
'V1.0 by Ti_ (Thierry Pourtier)
'V1.1 by Bernard_XLD
'V1.2 by Bernard_XLD
If App_Vol Then Application.Volatile
If Chn_Txt = "" Then Chn_Txt = "abcdefghijklmnopqrstuvwxyzàáâãäåçéêëèìíîïðòóôõöñùúûüýÿ": Chn_Txt = Chn_Txt & UCase(Chn_Txt)
'pour des caractères exotiques par défaut dans la fonction, déclarer les codes car
'If Chn_Txt = "" Then Chn_Txt = ChrW(&H1228) & ChrW(&H561) & ChrW(1096) & ChrW(&H4E94) & ChrW(4312) & ChrW(964) & ChrW(1514) & ChrW(&H146D) & ChrW(&HC77C) & ChrW(&H65E5)
Randomize
LettreAleatoire = Mid$(Chn_Txt, Int(Rnd * Len(Chn_Txt) + 1), 1)
End Function
 

Pièces jointes

  • Exemple_Lettre_Aléatoire.xlsm
    24.5 KB · Affichages: 3
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 719
Messages
2 112 183
Membres
111 456
dernier inscrit
Bologne5