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, @+
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
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
Dernière édition: