Excel : sélection cellule aléatoire vide

Fermé
Gedou - 9 janv. 2010 à 15:44
 Gedou - 9 janv. 2010 à 20:17
Bonjour tout le monde,

J'ai créé cette petite macro :

Sub Gedou()
ligne = ActiveCell.Row
soluce = Worksheets("solutions").Cells(ligne, 1).Value
ActiveCell.FormulaR1C1 = "Gedou"
ActiveCell.AddComment
ActiveCell.Comment.Visible = False
ActiveCell.Comment.Text Text:=soluce
ActiveCell.Offset(1, 0).Select
End Sub

Pour résumer, il y a des questions en colonne A (de A10 à A20 par exemple), je sélectionne la cellule B10, puis clique sur un bouton auquel est affecté la macro ci-dessus. Cela affiche "Gedou" en B10 (+ création commentaire avec la réponse) et sélectionne la cellule B11 ( ActiveCell.Offset(1, 0).Select ).

Ma question principale : plutôt qu'il passe à la cellule du dessous, je voudrai qu'il sélectionne au hasard n'importe quelle cellule encore vide de B10 à B20.

Question 2 : pour éviter un bug probable : quand je réponds dans la dernière cellule non-vide, affichage d'un pop-up (me proposant de vider les réponses ou de ne rien faire par exemple) ou bien arrêt de la macro afin d'éviter qu'il cherche indéfiniment une cellule vide (qu'il ne peut plus trouver, de fait).

Vous remerciant déjà de l'éclairage que vous pourrez me fournir, je vous souhaite une bonne fin de week-end !

Gédou
A voir également:

4 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
9 janv. 2010 à 17:03
bonjour alors je vais commencer par la question B pour compter le nombre de cellule de B10 a B20:

w = WorksheetFunction.CountBlank(Range("B10:B20"))
if w =0 then exit sub

voila deja cela evite qu il cherche une vide alors qu il ni en a pas !!!

alors pour la 1ere question c chaud qd meme qu'il trouve une cellule vide au hasard mais je cherche
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
9 janv. 2010 à 17:16
une question c t juste pr l exemple B10 a B20 ?
de quel cellule a quel cellule tu va te servire?
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
9 janv. 2010 à 17:24
re c bon g trouvé un petit bout de code mais g besoin de savoir de quel cellule a quel cellule tu as besoin du code
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
9 janv. 2010 à 17:54
voila un code a toi de l'adapter:

topmaj = False
Do Until i = 10000 Or topmaj = True
Randomize
Z = Int((Rnd * Now) / 1000)
If Z = 0 Then Z = 1
If Cells(Z, 2).Value = "" And Z < 20 Then
Cells(Z, 2).Select
topmaj = True
Else
i = i + 1
End If
Loop

le and Z<20 20 representela derniere ligne sur laquel tu veux allé g pas mis de 1ere ligne a toi de me dire
voila g tester il marche tres bien
0
OK, je teste et je vous dis demain.

Quoi qu'il en soit, merci de vos réponses !

Salutations.

Gédou.
0