act_2-JS : JS- macro boîte de dialogue et Plages
Réglementaire : Pré-requis⚓
Utiliser OnlyOffice / Google Calc / Node-Red ou une page web.
001a1 - alert⚓
001a2 - confirm⚓
Pour poser une question à l'utilisateur avec un bouton OK et Annuler
1 if ( confirm( "Êtes-vous étudiant en GIM1, OK sinon Annuler") ) { 2 // Code à éxécuter si le l'utilisateur clique sur "OK" 3 alert("GIM1 OK"); 4 } else { 5 // Code à éxécuter si l'utilisateur clique sur "Annuler" 6 alert("GIM2 OK"); 7 } 8 |
001a3 - prompt⚓
"Valeur A" dans la cellule A1. Classe Range.
Exemple :
Api.GetActiveSheet().GetRange("A1").SetValue("Valeur A");
"Valeur B" dans la cellule A1, avec un objet feuille et un objet cellule.
Exemple :
var objF=Api.GetActiveSheet(); // Objet feuille
var objCA1=objF.GetRange("A1"); // Objet Cellule A1
objCA1.SetValue("Valeur A"); // Assigner la valeur à l'objet cellule A1 via la méthode SetValue
Pour colorer le fond de la cellule, il est nécessaire de définir les couleurs souhaitées avec leur code RGB (LIEN VERS LES CODES RGB).
Truc & astuce :
oColorBlancCreme = Api.CreateColorFromRGB(253, 241, 184);
oColorAmbre = Api.CreateColorFromRGB(240, 195, 0);
Ensuite, de la même manière que SetValue change la valeur d'une cellule , SetFillColor change la couleur.
Truc & astuce :
Api.GetActiveSheet().GetRange("A1").SetFillColor(oColorBlancCreme);
Résultat pour colorer les 2 cellules⚓
// Définitions des couleurs
oColorBlancCreme = Api.CreateColorFromRGB(253, 241, 184);
oColorAmbre = Api.CreateColorFromRGB(240, 195, 0);
// Placer le texte 'valeur A' dans la cellule A1 de la feuille active
Api.GetActiveSheet().GetRange("A1").SetValue("Valeur A");
// Changer la couleur du fond
Api.GetActiveSheet().GetRange("A1").SetFillColor(oColorBlancCreme);
// Si on souhaite ré-utiliser la cellule pour gérer des propriétés ou lui appliquer des méthodes, on peut déclarer des variables pour chaque objet.
var objF=Api.GetActiveSheet(); // Objet feuille
var objCA2=objF.GetRange("A2"); // Objet Cellule A1
objCA2.SetValue("Valeur B"); // Assigner la valeur à l'objet cellule A1 via la méthode SetValue
Api.GetActiveSheet().GetRange("A2").SetValue("Valeur B")
objCA2.SetFillColor(oColorAmbre);
Chercher la méthode permettant de changer le texte d'une cellule en gras.
Complément : Correction⚓
La méthode est SetBold. | 1 var objDonnees=objF.GetRange("A1:A2"); 2 objDonnees.SetBold(true); |
Objectif⚓
On suppose que la feuille de calcul comporte les données ci-contre. | En B4, on souhaite connaître la somme de A et B. En B5, on veut la formule qui effectue la somme de A et B | |
Le résultat visible en B4 et B5 sera bien identique. La différence est que si on souhaite que l'utilisateur ne sache pas comment le résultat est calculé, on peut placer grâce au code écrire le résultat sans pour autant écrire la formule. | ||
Cellule B5 | 1 objF.GetRange("A5").SetValue("A+B avec la formule"); 2 objF.GetRange("B5").SetValue('=B1+B2'); | |
Lire la valeur en B1 et en B2 en les affectant aux variables vA et vB. | 1 vA=objF.GetRange("B1").GetValue(); 2 vB=objF.GetRange("B2").GetValue(); 3 alert(vA + vB); | Le résultat affiché est 127 ? ? ? ?. On obtient la concaténation au lieu de la somme arithmétique (19) |
L'opérateur + s'applique ici à des chaînes de caractères par défaut. Il faut convertir les valeurs au préalable avec | 1 vAn=Number(objF.GetRange("B1").GetValue()); 2 vBn=Number(objF.GetRange("B2").GetValue()); 3 vTot=vAn+vBn; 4 5 objF.GetRange("A4").SetValue("A+B calculé"); 6 objF.GetRange("B4").SetValue(vTot); | |
.
BUG : Exécuter les macros dans la feuille de calcul.⚓
Normalement, un clic droit sur un objet permet d'assigner facilement une macro. Un clic sur l'objet permet de l'exécuter.
Réglementaire : Application⚓
Générer une feuille de calcul qui permet de calculer le TRG en supposant que TO, AI, NQ, TU sont connus.
On pourrait ensuite améliorer la feuille en choisissant les grandeurs à saisir et à calculer.