Tirage aleatoire d'une lettre !

deudecos

XLDnaute Impliqué
Bonjour a toutes et a tous,

Je cherche deja depuis quelques temps a obtenir un tirage d'une lettre de l'alphabet de facon aleatoire.

Quelqu'un parmis vous pourrait il ou elle m'aider a y parvenir ?


Bonne journee

Olivier
 

deudecos

XLDnaute Impliqué
Bonjour Michel, le forum,

Alors la, je dis... 'ca fait hyper longtemps que je tourne autour de cette solution, et la reponse est si simple que j'en merite tres largement ma reputation de Deux de quotient !' :) :) :)

Merci Michel de me debarasser de cette epine !

Bonne journee

Olivier
 

Ti_

Nous a quitté
Repose en paix
voici une méthode que j'aime bien, parce qu'elle permet de choisir précisément les lettres que tu désires renvoyer. Je l'utilise systématiquement quand je dois renvoyer des lettres aléatoires. A peine modifiée elle permet de renvoyer des lettres sans doublons

Function LettreAleatoire$()
Const Lettres$ = 'abcdefghijklmnopqrstuvwxyzéèêëàâôûù'
Randomize
LettreAleatoire = Mid$(Lettres, Int(Rnd * Len(Lettres) + 1), 1)
End Function

Salut à vous deux
Ah ben j'avais pas vu que Michel était déjà passé par là. Bon ben ça te fera deux méthodes pour le prix d'une alors ! arf.

Message édité par: Ti_, à: 16/10/2005 13:40
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Olivier, Ti, Michel, le Forum

Et dans le Style Western Spaguetti à la sauce barbatruc LOL

Sub TirageAlpha()
Dim Number As Byte
Dim i As Byte

 
For i = 1 To 100
       
Do
               
Do While Number < 65
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Randomize
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Number = Int((90 * Rnd) + 1)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If Number > 64 And Number < 91 Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Check =
True
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit Do
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Loop
&nbsp; &nbsp; &nbsp; &nbsp;
Loop Until Check = True
&nbsp; &nbsp;
&nbsp; &nbsp; Cells(i, 1) = Chr(Number)
&nbsp; &nbsp; Randomize
&nbsp; &nbsp; Number = Int((90 * Rnd) + 1)
&nbsp;
Next i

End Sub

Bon Dimanche à vous tous
[ol]@+Thierry[/ol]
 

andré

XLDnaute Barbatruc
Salut,

Une lettre de l'alphabet peut tout aussi bien être une minuscule qu'une majuscule !

=CHOISIR(ARRONDI(ALEA();0)+1;CAR(ENT(ALEA()*26+1)+64);CAR(ENT(ALEA()*26+1)+96))

ou (plus court) :
=CAR(ENT(ALEA()*26+1)+64+CHOISIR(ARRONDI(ALEA();0)+1;0;32))

Â+

Et encore un peu plus court :
=CAR(ENT(ALEA()*26+1)+CHOISIR(ARRONDI(ALEA();0)+1;64;96))

Message édité par: andré, à: 16/10/2005 16:27

C'est ancore moi !
J'avais donné dernièrement à Gérard une petite astuce pour transformer une minuscule en majuscule, ou vice-versa, en lui disant que je ne savais vraiment pas à quoi cela pouvait bien servir :
=CAR(CODE(A1)+32) et CAR(CODE(A1)-32)
Eh bien, voilà une application.
Alt+64+32 =Alt+96 (ou A = a)

Â+

Message édité par: andré, à: 16/10/2005 16:36
 

Gibson94

Nous a quitté
Repose en paix
Bonsoir le fil,

J'ai été curieux de voir fonctionner les formules d'André et de Tibo, donc je les ai mises sur une même feuille.

1ère formule en 'C2'

=CHOISIR(ARRONDI(ALEA();0)+1;CAR(ENT(ALEA()*26+1)+64);CAR(ENT(ALEA()*26+1)+96))

2ème formule en 'C4'

=CAR(ENT(ALEA()*26+1)+64+CHOISIR(ARRONDI(ALEA();0)+1;0;32))

3ème formule en 'C6'

=CAR(ENT(ALEA()*26+1)+64)

Et de ces 3 formules découle ma question.

Lorsque je valide une seule de ces 3 cellules (donc formules), il s'avère que le résultat de chaque cellule change en même temps sans avoir bien entendu le même résultat.

Pourquoi donc ce rapport entre elles ?

Le fait d'écrire une lettre dans n'importe quelle autre cellule vide nous permet d'avoir le même effet...

Bonne nuit à tous...

Message édité par: gibson94, à: 17/10/2005 00:36
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir ou bonne nuit tout le monde,

Pour répondre à Gibson94, c'est vraisemblablement parce que dans le menu 'Outils'+'Options', la case 'Mode de calcul = Automatique' est cochée dans l'onglet 'Calcul'....

Voili voilà

Que Morphée soit avec vous ;)
Charly
 

deudecos

XLDnaute Impliqué
Bonjour a toutes et a tous en ce beau matin d'hiver ! (enfin... chez moi !) :)

En effet Guy, ce que dit Charly est judicieux, puisque a chaque intervention sur ta feuille, et ce par defaut, elle est entierement recalculee...

Bonne journee a tous

Olivier
 

andré

XLDnaute Barbatruc
Resalut à vous,

Pour que le calcul ne se refasse pas à chaque validation d'une cellule quelconque de la feuille, la dernière formule (les autres aussi) peut être modifiée comme suit :

=SI(A1='';'';CAR(ENT(ALEA()*26+1)+CHOISIR(ARRONDI(ALEA();0)+1;64;96)))

Donc, tant que A1 est vide, le résultat ne change pas.
Pour qu'il change il suffit de taper un caractère quelconque en A1, même de façon aléatoire (lol).
Dès lors même la touche clavier F9 modifie le choix de la lettre.

Â+
 

Discussions similaires

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 512
dernier inscrit
sisi235