A voir également:
- Programmation d'un QCM sur VBA
- Application de programmation - Guide
- Comment programmer un mail sur gmail - Guide
- Programmer un message sur iphone - Guide
- Excel compter cellule couleur sans vba - Guide
- Mettre en veille un programme - Guide
2 réponses
Bonjour,
pour generer un nombre aleatoire entre 1 et 300 en vba tu peux ecrire ceci:
ensuite pour generer une liste de 10 chiffres au hasard et differents s'inscrivant dans la plage A1:A10 de ta Feuil1, tu peux ecrire:
Donc ensuite tu peux utiliser cette liste de 10 valeurs aleatoires comprises entre 1 et 300 pour faire une recherche dans ta base de donnees!
bibivanhoa
pour generer un nombre aleatoire entre 1 et 300 en vba tu peux ecrire ceci:
Sub nbalea() Dim valeur As Integer Randomize valeur = Int(300 * Rnd) + 1 End Sub
ensuite pour generer une liste de 10 chiffres au hasard et differents s'inscrivant dans la plage A1:A10 de ta Feuil1, tu peux ecrire:
Sub nbalea() Dim valeur As Integer Randomize For i = 1 To 10 Do valeur = Int(300 * Rnd) + 1 Cells(i, 1).Value = valeur Loop While WorksheetFunction.CountIf(Worksheets("Feuil1").Range("A1:A10"), valeur) = 0 Next i End Sub
Donc ensuite tu peux utiliser cette liste de 10 valeurs aleatoires comprises entre 1 et 300 pour faire une recherche dans ta base de donnees!
bibivanhoa
Bonjour
On suppose qu'en feuille2 tu as la liste des 300 questions en colonne A à partir de la ligne 1 ?
si oui
proposition à adapter à ta présentation (à l'avenir,merci d'^tre plus précis dans tes questions)
https://www.cjoint.com/?3AyoMUANbob
les macros
Michel
On suppose qu'en feuille2 tu as la liste des 300 questions en colonne A à partir de la ligne 1 ?
si oui
proposition à adapter à ta présentation (à l'avenir,merci d'^tre plus précis dans tes questions)
https://www.cjoint.com/?3AyoMUANbob
les macros
Option Explicit
Public Qcm As Object
'--------------------------------
Sub nouveau_QCM()
Dim Cptr As Integer
'------initialisations
Set Qcm = CreateObject("scripting.dictionary")
For Cptr = 1 To 300
Qcm.Add Cptr, ""
Next
End Sub
'---------------------------------
Sub questionner()
Dim Cptr As Integer, Ligne As Integer
Randomize
For Cptr = 1 To 10
Ligne = Int(Rnd * 300) + 1
If Qcm.exists(Ligne) Then
Sheets(1).Range("A" & Cptr) = Sheets(2).Range("A" & Ligne)
Qcm.Remove (Ligne)
End If
Next
End Sub
Michel