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 !
J'ai mis sur la feuille trois, en colonne IT, 160 équations du 1er degré,et en colonne IT, les solutions correspondantes.
Sur la feuille 1, en colonne A, excel choisi au hasard des équations parmi ces 160 équations. Ensuite, en B7, C7... on propose des équations intermédiaires permettant "d'isoler" progressivement l'inconnue x correspondant à A7, pour finalement finir avec x =...
Le problème ici, c'est que, puisque l'équation en A7 est choisie au hasard sur la feuille 3, à chaque fois qu'on fait "entrer", une nouvelle équation est écrite en A7, en A9, en A11... Résultat, la solution proposée en B7, C7, D7... n'a que peut de "chance" d'être la bonne par rapport à A7.
Que faire ?
Autrement dit, est-il possible de demander à excel de choisir au hasard les équations à mettre dans la colonne A de la feuille 1, à l'ouverture du fichier, puis de bloquer ce choix, au besoin à l'aide d'une macro ?
Re : choisir une cellule au hasard, puis bloquer le résultat
Bonjour à tous
Bonjour Excel-lent.
Le fichier correspondant à mon précédent fil tourne correctement.
Maintenant, j'ai construit un autre fichier, dans lequel les 20 équations à résoudre sont tirées au hasard parmi un lot de 160, avec la formule, par exemple en A7 :
Code:
=INDIRECT("Feuil3!IT"&ENT(ALEA()*(166-7)+7))
Cela fonctionne bien, sauf que ces 20 équations sont modifiées à chaque écriture faite sur cette feuille. C'est logique puisque la fonction ALEA() est recalculée à chaque nouvelle entrée sur la feuille.
Dans le doute, et pour savoir si cela pouvait venir de la macro, je l'ai supprimée, mais le recalcul de ALEA() se fait toujours, dans la colonne A. De même, j'ai fait le test sur un autre fichier avec juste =ALEA() dans une cellule. Là aussi, cette fonction est recalculée à chaque entrée faite ailleurs dans la feuille.
Tout cela me semble normal, sauf que ce n'est pas ce dont j'ai besoin ici : excel doit choisir au hasard, à l'ouverture du fichier, les 20 équations à résoudre, puis figer ce choix, quoi que l'on fasse ensuite sur ce fichier.
Pour rappel, toutes les cellules grises sont en fin de compte verrouillées et protégées, pour que l'élève faisant ce travail ne puisse pas effacer des formules par maladresse, ou "imposer" des réponse en sa faveur !
Re : choisir une cellule au hasard, puis bloquer le résultat
Salut,
à essayer (mieux que rien) :
pas de formule en colonne A, le tirage au sort s'effectue en cliquant sur un bouton de la feuille avec la macro associée :
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For li = 7 To 45 Step 2
Cells(li, "A") = Sheets(3).Cells(Int(Rnd() * 159 + 7), "IT")
Range("B" & li & ":F" & li).ClearContents 'remise à zéro des lignes des réponses
Next
Application.ScreenUpdating = True
End Sub
Remarque : les formules de test ne retourne rien avec certaines saisies.
Re : choisir une cellule au hasard, puis bloquer le résultat
Re,
un exemple (fichier allégé) de tirages sans répétition :
Code:
Private Sub CommandButton1_Click()
Unprotect "CISFRAN"
Application.ScreenUpdating = False
Dim c As New Collection, nb As Byte, Li As Byte, Col As Byte
On Error Resume Next
For N = 1 To 150
Randomize
nb = Int(7 + 14 * Rnd)
c.Add nb, CStr(nb)
Next
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
For Li = 7 To 15 Step 2
k = k + 1
Cells(Li, 1) = Sheets("Feuil3").Cells(c(k), "B")
Range("B" & Li & ":F" & Li).ClearContents
Next
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Protect "CISFRAN"
End Sub
Re : choisir une cellule au hasard, puis bloquer le résultat
Bonjour à toutes et à tous
Merci Fo_rum. Et bien vu aussi la seconde macro pour éviter les répétitions ( je n'avai pas pensé à cette possibilité).
Comment faut il faire pour :
Tirer au hasard des équations que à l'ouverture du fichier ?
Effacer le contenu des cellules uniquement à la fermeture et/ou sur une combinaison de touches ?
Re : choisir une cellule au hasard, puis bloquer le résultat
Re,
Pour lancer le tirage à l'ouverture du classeur (et seulement à ce moment), déplace la macro ci-dessus dans ThisWorkbook, remplace Private Sub CommandButton1_Click() par Private Sub Workbook_Open() puis supprime le bouton.
Tu n'as aucun message si tu saisis un mot quelconque. Je complèterai la formule, en C7,ainsi :
On pourrait implanter cette formule par macro mais le nombre de " compliquerait la chose.
On peut créer une petite macro lancée par une combinaison de touches pour effacer les cellules à remplir, mais faut-il le faire par ligne ou pour toutes les lignes à la fois ?
Re : choisir une cellule au hasard, puis bloquer le résultat
Bonsoir
Merci Fo rum. Ca fait vraiment plaisir de voir mon petit fichier évoluer. Merci pour ton aide.
Ceci dit, j'ai déplacé et modifié la première ligne de ta macro. Ca fonctionne bien, sauf quand la feuille 1 est protégée. Etonnant, puisqu'il y a un unprotect en ligne 2. Que faut il faire pour résoudre ce problème ?
Merci pour l'exemple. Je vais adapter ça à mon fichier.
Re : choisir une cellule au hasard, puis bloquer le résultat
Bonsoir
Personne n'a une petite idée pour résoudre mon problème (à savoir qu'excel choisi bien au hasard les équations à écrire dans la colonne A, lorsque la feuille 1 n'est pas protégée, mais ne le fait plus lorsque la feuille est protégée...) ?
Re : choisir une cellule au hasard, puis bloquer le résultat
Bonsoir CISCO, le fil,
Dés que la feuille est protégée on ne peut plus faire grand-chose sauf la déprotéger par une petite macro évenementielle mais qui risque de devenir très rapidement la PORTE ouverte et les jeunes sont malins....
La reprotéger ensuite..... Vois pas trop comment faire sur ton fichier.
- 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