Colorer aleatoirement une cellule dans un tablo

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Evelynetfrancois

XLDnaute Impliqué
Bonjour a tous
je cherche en VBA a colorer une cellule aleatoirement "si non vide "

la zone est de 5 cellules ....de A1 à A5

le choix aleatoire devrait se faire sur les cellules non vides uniquement

j espere etre clair ,

merci pour toutes vos idées

E et F
 
Re : Colorer aleatoirement une cellule dans un tablo

Bonjour Evelynetfrancois,

Un classeur pour réaliser des colorations de type cubisme avec des choix aléatoires, jusqu'à 7. Ce n'est qu'un eexercice de style, mais il y a de quoi travailler pour ta recherche VBA.

Cordialement

Bernard
 

Pièces jointes

Re : Colorer aleatoirement une cellule dans un tablo

bonjour E et F

Un essai

Code:
Sub test()
While coul = False
n = 1
Randomize
r = Int((5 * Rnd) + 1)
If Range("A" & r) <> "" Then
  Range("A" & r).Interior.ColorIndex = 3
  coul = True
End If
n = n + 1
If n > 100 Then Exit Sub
Wend
End Sub

Edit : Salut Bernard
 
Re : Colorer aleatoirement une cellule dans un tablo

Salut,

autre exemple
Code:
Sub couleur()
  Range("A1:A5").Interior.ColorIndex = xlNone
  Do  
    Range("A" & Int(Rnd * 5 + 1)).Select
  Loop Until Selection <> ""
  Selection.Interior.ColorIndex = 3
End Sub
 
Re : Colorer aleatoirement une cellule dans un tablo

Re

@ Fo_rum

Ta macro est plus succinte mais ...
1) Il manque Randomize
Pour te convaincre de son utilité procede comme suit:
lance ta macro, ferme le fichier ,rouvre le et relance la macro
2) Si les 5 cellules sont vides ta boucle ne s'arretera jamais
 
Re : Colorer aleatoirement une cellule dans un tablo

Re,

tu as raison pierrejean. J'ajoute donc 2 lignes
Code:
Sub couleur()
  [B]If [A5].End(xlUp).Row = 1 Then Exit Sub[/B]
  Range("A1:A5").Interior.ColorIndex = xlNone
  Do
    [B]Randomize[/B]
    Range("A" & Int(Rnd * 5 + 1)).Select
  Loop While Selection = ""
  Selection.Interior.ColorIndex = 3
End Sub
 
Re : Colorer aleatoirement une cellule dans un tablo

Bsr le forum


Une autre approche


Code:
Sub test_autrement()
Dim plg As Range
Dim x As Variant
Dim a As Byte
Set plg = Range("a1:a5").SpecialCells(xlCellTypeConstants, 23)
plg.ClearFormats
x = Split(Replace(CStr(plg.Address), ":", ","), ",")
a = Int((UBound(x) - LBound(x) + 1) * Rnd + LBound(x))
Randomize
Range(x(a)).Interior.ColorIndex = 3
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
883
Retour