Copie/coller conditionné en JS sur google sheet

Fermé
Camisch - 7 sept. 2022 à 09:38
 Rathaus - 7 sept. 2022 à 21:48

Bonjour,

Je souhaite écrire un script qui permet de faire la chose suivante : 

Dans un onglet "Expéditions" 

Si la case Mx est cochée (donc si elle est vraie), copier valeur Bx:Lx et coller dans l'onglet "Historique" 

et faire cela tant que Mx = vrai 

Je sais qu'il faut faire une boucle etc mais je débute franchement en JS et j'ai du mal à écrire la fonction finale. 

Merci pour votre aide ! 


Macintosh / Chrome 104.0.0.0

A voir également:

1 réponse

Salut, si vous débutez le mieux c'est de suivre des cours/tutos avec des exemples et problémes à réaliser.

Cela vous donnera aussi bien des bases du langage(syntaxe, éléments de langage, ...) que de la pratique du raisonnement procédural et objet utilisé(algorithme: mon but est cela je doit faire telle étapes pour y arriver).

JavaScript est un langage de programmation interprété qui permet entre autre mais surtout de manipuler(et accéder) des éléments HTML.

Il vaux mieux avant de faire du JavaScript donc être au point en HTML.

Si c'est le cas vous devez savoir qu'une case à cocher est un élément de formulaire.

Avec JavaScript vous pouvez récupérer la valeur d'une case à cocher comme ceci:

https://www.w3schools.com/tags/att_input_checked.asp

Une fois que vous avez cette valeur vous pouvez l'utiliser. Quand à faire un copié collé ce n'est pas comme cela que ça fonctionne en programmation.

L'une des bases de la programmation est l'utilisation de valeurs qui sont stockées par le programme. Ce sont les variables qui permettent de stocker et enregistrer, modifier comme on veut une valeur.

Donc à priori il n'y a rien à copier coller mais utiliser une valeur, ou plutôt la tester pour voir si elle est vraie ou fausse à un moment donné.

Exemple du raisonnement par étapes nécessaire (algorithme):

_obtenir la valeur de la case à cocher(sous quel condition? envoi du formulaire, la case est cochée? à un autre moment?). Par défaut supposons que celle ci n'est pas cochée.

_si la valeur est true(la case est cochée) récupérer la valeur indiquée(Bx:Lx on sait pas ce que ça veut dire ou d'où provient cette valeur). On peut par exemple la stocker dans une variable ou l'utiliser directement.

_Afficher la valeur stockée où elle doit s'afficher(vous parlez d'onglet mais un programme JavaScript ne fonctionne que dans le contexte de sa page. Donc si par onglet vous parlez d'une autre page il faut que vous enregistriez cette valeur pour la rendre disponible hors de la page. Cela peut se faire avec local storage, avec une base de données avec la méthode AJAX mais ce sont plus des utilisations basiques(sauf local storage) et nécessite autre choses que du JavaScript. On est hors du contexte de la page qui est affichée donc JavaScript qui ne fonctionne que dans cette page n'est plus suffisant.

Je ne vois pas vraiment de raison d'utiliser une boucle ici.

Vous pouvez l'utiliser l'événement onChange pour détecter si la case à cocher change de valeur ou simplement si l'utilisateur clique dessus(ce qui est exactement la même chose au final car chaque click change de cocher à pas cochée ou l'inverse).

Pour les événements vous pouvez regarder par là:

https://www.w3schools.com/jsref/met_element_addeventlistener.asp

https://www.w3schools.com/jsref/event_onchange.asp

0