Couleurs aléatoires dans un Userform

Bonsoir,

Je souhaiterais pouvoir changer la couleur du texte d'un togglebutton aléatoirement à chaque clic d'un autre bouton.

J'ai donc créé une liste de 4 codes couleur hexa (noir, vert, orange et rouge) sur une feuille et j'ai renommé cette plage.

J'ai ensuite tenté ce code:

private sub commandbutton1_click()

Tgb.forecolor = application.index(['feuil1'!Listecouleur], [int(Rand()*4)+1])
End sub 

Les 4 couleurs à choix sont de type: &H80000012&

Malheureusement ce code ne fonctionne pas du tout.

Ce code fonctionne parfaitement s'il s'agit de mettre un mot aléatoire dans un label par exemple. Mais pour la couleur du texte, impossible de le faire fonctionner...

Auriez-vous une idée pour changer cette couleur de texte aléatoirement ?

Merci beaucoup

MVBAM

Bonjour,

Private Sub CommandButton1_Click()
Dim ListeCouleur
    ListeCouleur = Array(0, 65280, 33023, 255)
    Randomize
    Tgb.ForeColor = ListeCouleur(Int(Rnd() * 4))
End Sub

A+

Merci beaucoup pour cette réponse rapide !

Je fais tester ça tout de suite.

Une dernière question car je vois que vous me proposer des couleurs en format Long:

Pour le noir et le rouge, aucun problème ce sont les standards.

Mais pour le vert et le orange, je n'avais pas choisi ces nuances, y a-t-il un moyen de convertir mes couleur au format hexa en format long afin que je puisse garder les mêmes couleurs ?

Merci !!

Tu peux utiliser la fonction HEXDEC.

Exemple avec la couleur bleue.

En A1 : &H00FF0000&

La formule =HEXDEC(STXT(A1;5;6)) renvoie 16711680

Autre exemple avec le vert.

En A1 : &H0000FF00&

=HEXDEC(STXT(A1;5;6)) renvoie 65280

A+

Merci infiniment !

Tout et clair et tout fonctionne à merveille !

MVBAM

J'ai encore une question...

Une fois que mes 8 togglebutton ont reçu une couleur aléatoire (entre noir, vert, orange et rouge), je voudrais limiter le nombre de togglebutton rouge.

Par exemple: si un de ces tgb est rouge, il relance le randomize.

Je cherche donc une formule qui dirait: relance les couleur aléatoire jusqu'à ce que le nombre de togglebutton rouge soit égal à 1.

Dans l'idéal: pouvoir choisir sur 8 togglebutton combien seront noirs, combien en vert, combien en orange et combien en rouge mais que ces couleurs soir distribuées aléatoirement.

Est-possible ?

Sinon auriez-vous une autre idée pour avoir une distribution aléatoire mais "contrôlée" ?

Merci beaucoup.

Bonjour,

Dans le classeur joint, le choix du nombre de couleurs est effectué en feuille 1.

Le code de l'USF utilise ensuite cette grille pour affecter les couleurs aux TgB.

A+

45mvbam.xlsm (19.16 Ko)

Merci beaucoup c'est super !

Problème résolu !!

Rechercher des sujets similaires à "couleurs aleatoires userform"