Comment traduire "sauf" dans la formule ci-dessous?

Thaiko82 Messages postés 4 Statut Membre -  
Thaiko82 Messages postés 4 Statut Membre -
Bonjour à tous,

La formule suivante permet d'obtenir des codes à 6 caractères aléatoires avec pour seul caractère fixe le chiffre et première lettre du début.

Hors, j'aimerais ajouter une condition qui exclurait la lettre "L". ça fait un moment que je me casse la tête et je ne trouve pas comment faire, pourriez-vous m'aider, s'il vous plaît?

="8u"&(CHAR((INT(RAND()*26)+1)+64)&(CHAR((INT(RAND()*26)+1)+64)&(CHAR((INT(RAND()*26)+1)+64)&(CHAR((INT(RAND()*26)+1)+64)))))

Exemple de résultat: 8UBLFG

Merci beaucoup d'avance!

Meilleures salutations
A voir également:

3 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

J'ai l'impression qu'il faudrait utiliser 4 cellules intermédiaire pour fixer le nombre aléatoire qui doit être utilisé 2 fois (test+utilisation)
C'est plus simple avec une fonction personnalisée en VBA :
Function code4L()
    Dim i As Long, L As String
    'Application.Volatile
    For i = 1 To 4
        L = Int(Rnd() * 25 + 1)
        code4L = code4L & Chr(IIf(L = 12, 26, L) + 64)
    Next i
End Function

Si tu veux que ce soit réévalué à chaque recalcul de la feuille (ou par F9) enlève l'apostrophe devant Application.Volatile

Alt+F11 pour voir le code dans le Module1
https://www.cjoint.com/c/CHvsBdr5MVW

eric

0
tontong Messages postés 2586 Date d'inscription   Statut Membre Dernière intervention   1 063
 
Bonjour,
Si c'est pour une application volatile on y parvient par formule en ajoutant 2 Alea.entre.borne (RANDBETWEEN)
="7r"&CAR(64+ALEA.ENTRE.BORNES(1;11)+ALEA.ENTRE.BORNES(0;15))&CAR(64+ALEA.ENTRE.BORNES(1;11)+ALEA.ENTRE.BORNES(0;15))&CAR.....etc
0
Thaiko82 Messages postés 4 Statut Membre
 
Merci beacuoup à vous deux!

Je vais tester si ça marche de l'une ou l'autre façon.
0