|
|
|
|
Essaie ça, je viens de faire et ça marche. Je suis content pour une fois que j'arrive à aider qq.
Sub random() ' ' random ' Macro enregistrée le 13/02/2005 par berounet x = Int(Rnd(1) * 10): ' remplacer 10 par le dépl hor max souhaité y = Int(Rnd(1) * 10): ' remplacer 10 par le dépl vert max souhaité Range(Chr$(65 + x) & y).Select ActiveCell.Value = "X" End Sub
|
excusez moi mais j'ai pas compris ce que je devais mettre dans la cellule...
et puis c'est quoi cette histoire de macro?? merci
|
je m'explique:
sur excel, j'ai fait une liste de vocabulaire d'anglais, et yen a près de 800. pour pouvoir les réviser, j'aimerais établir une petite liste qui"pioche" au hasard dans la liste, comme ca je peux ré&viser petit bout par petit bout.seulement je connais pas de fonction permettant de faire ca donc, pour te répondre, je pense que c'est une plage de cellules contigues et qu'il s'agit de texte comme info que je met en entrée |
bonjour
je te propose ceci : Sub sélection() Dim choix, nbr_elm, nbr_sel, lig nbr_sel = 20 ' le nombre de lignes à réviser ' le vocabulaire est en A1 sur la "feuil1" et sur 10 colonnes ' le choix est en A1 sur la "feuil2" nbr_elm = Worksheets("feuil1").Range("a1").End(xlDown).Rows For lig = 0 To nbr_sel choix = Int(Rnd(1) * nbr_elm): Worksheets("feuil2").Range("a1").Offset(lig).Formula = "=Feuil1!R[" & choix & "]C" Worksheets("feuil2").Range("a1").Offset(lig).Resize(1, 10).FillRight Next lig End Sub Cela te permet de récupérer sur ta feuille 2 le nombre d'éléments désirés. si ton classeur est construit différement il suffit d'adapter. toujours zen
|
|
Salut,
J'avais un peu de temps cette nuit, alors j't'ai fait un p'tit programme de révision...télécharge le fichier .xls à cette adresse: ...ensuite, t'as plus qu'à mettre tes 2 colonnes de mots là où tu veux, tu remplis le minuscule formulaire et tu commences ta partie! Lol ici la capture d'écran: http://membres.lycos.fr/famillepfeiffer/samy/Vocabulaire.htm ici le fichier: http://membres.lycos.fr/famillepfeiffer/samy/Vocabulaire.xls Have Fun! Samy
|
euh merci mais il bug des le debut ton programme!!
|
|
Bonjour,
Je propose une piste simpliste, en supposant que : - le vocabulaire se trouve en colonne 1 d'une feuille appelée Liste, sans titre et sans trous - que le tirage au sort se pratique dans une feuille appelée Tirage Dans le code VBA de la feuille Tirage, mettre le code suivant :
Private Sub Worksheet_Activate()
Dim Nombre As Long
Nombre = Sheets("Liste").Cells(1, 1).CurrentRegion.Rows.Count
Sheets("Liste").Cells(1, 10).Value = Nombre
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Tirage
End Sub
Dans un module VBA, mettre le code suivant :
Sub Tirage()
Dim Nombre As Long
Dim Hasard As Long
Dim FL As Worksheet
Dim FT As Worksheet
Set FL = Sheets("Liste")
Set FT = Sheets("Tirage")
Randomize
Nombre = FL.Cells(1, 10).Value
Hasard = Int(Rnd() * Nombre) + 1
FT.Cells(10, 3).Value = FL.Cells(Hasard, 1)
End Sub
Quand on active la feuille Tirage, une macro de feuille calcule automatiquement le nombre de mots, et le stocke en cellule (1, 10) de la feuille Liste. De cette façon, quand on vient de mettre à jour la liste, ce nombre est recalculé. Pour déclencher la |