Lien tableur / curseur

david49100 shared this question 6 months ago
Answered

Bonjour,

J'aimerais remplir la colonne A avec des nombres aléatoires (lancers de dé par exemple) en fonction d'un curseur.

Je voyais bien un truc aussi "naïf" que ça dans le script du curseur :

Exécute("RemplirCellules(A1:A"+a+", AléaEntreBornes(1, 6))")

Mais :

- ça ne fonctionne pas

- je ne veux pas qu'à chaque actualisation du curseur, il y ait un recalcul global : les valeurs apparaissent en augmentant la valeur du curseur, disparaissent si on diminue. Si on réaugmente, les valeurs aléatoires peuvent être différentes de celles obtenues précédemment.

Par contre, je dois pouvoir continuer de maîtriser le recalcul global (typiquement avec F9).

J'en demande beaucoup.... je galère pas mal.

Merci

David

Comments (8)

photo
1

OK Merci Noël, en farfouillant dans le forum, j'avais lu un post dans lequel, le passage en anglais était obligatoire mais ça n'avait pas fonctionné non plus mais les accolades me manquaient !

Pour le reste, ça va être plus délicat effectivement.

photo
1

Suite : le curseur actualisé recalcule ce qui se passe dans le tableur (sur 500 lignes et 3 colonnes) et trace des points correspondants dans le graphique. De fait, chaque mouvement du curseur engendre tellement de calculs que la machine ne suit plus du tout. Tout fonctionne bien par contre si je pilote la variable par le champ de saisie.

Bref, peut-on n'actualiser les calculs au niveau du curseur qu'au moment du relâcher du bouton de la souris ?

photo
1

Bonjour,

Oui, délicat.

Surtout en combinaison avec F9, parce que F9 exécute les scripts onUpdate des curseurs (pas genial, peut-être un bug).


OnClickRelease n'existe pas. Simulation avec un curseur TimeOut.


Note:

Je pense qu'avec des listes (pas dans un tableur) c'est plus facile.

Et je ne recommande pas de mettre à jour les listes aléatoires avec F9. Au lieu de cela, mettez à jour les listes aléatoires avec des scripts.

  • L_1 = {}
  • dans Bouton: SetValue (L_1, Sequence(RandomBewtween(1,6), n, 1,100))

photo
1

Bonjour Noel, aussi à vous mes meilleurs vœux pour 2018

.

Et merci pour les roses, mais votre solution est meilleure.

photo
1

Merci à vous deux.

J'ai essayé la solution de Raymond mais le problème de ralentissement apparaît tout de même.

Pour ta solution, Noël, je dis simplement : Wahou ! Je n'ai pas encore testé à fond avec ce que je veux faire, mais ta solution semble simple et élégante.

Par contre, j'essaye désespérément de rajouter une deuxième commande au Exécute (cf. ci-après) mais mes tentatives échouent toutes... J'ai même essayer de rajouter un deuxième texte "ajoutB" dans le script du curseur avec Si(va>n,{"ajout","ajoutB"}, etc... mais rien. Je passe à côté de quelque chose ?

Pour info, dans la commande suivante, j'ai essayé avec des { sans succès puis ici avec des ' toujours sans succès.


ajout = "Exécute({'“FillCells(A”+(va+1)+“:A”+n+“, RandomBetween(1, 6))”','“FillCells(B”+(va+1)+“:B”+n+“, RandomBetween(1, 6))”')"

photo
1

Merci Noël, quand j'ai vu ton post, j'ai été très surpris, j'étais certain d'avoir testé sans succès cette version.

Je tiens à préciser que je comprends l'expression, le rôle des guillemets et le distingo parenthèses/accolades aussi.

Dans la zone de saisie, j'obtiens l'image ci-après. Soit je suis neuneu (genre l'erreur de saisie est grosse comme mon nez et il faut que je me soigne), soit j'ai un réel souci.610e728caf568633a85b5d0d011df712


Quoiqu'il en soit, merci Noël !

photo
1

Oui tout à fait.

GeoGebra 5.0.414.0 19 December 2017 Java 1.8.0_121-64bit

photo
1

ah oui... fort !

Bravo ! et surtout merci !

© 2018 International GeoGebra Institute