Macro de gestion de choix successif

Merci, il manquait la parenthèse à la fin du if mais c'est nickel.

Si "et" s'affiche &&, comment on écrit une condition "ou"

Par contre c'est bizarre, si mes 2 conditions sont réunies, ca n'affiche pas la msgbox et ca remplace P1 par 1

Pourtant, j'ai vérifié via une formule =SI(ET(P1<6;N1=N2);"ok";"nok") et ça m'affiche bien ok comme quoi mes 2 conditions sont bien réunies

Mince pour la parenthèse.

As tu bien mis le double égal ?

Sinon peut-être ce code

if((f.getRange('P1').getValue()<6) && (f.getRange('N1').getValue()==f.getRange('N2').getValue())){

Bonne nuit

Si "et" s'affiche &&, comment on écrit une condition "ou"

||

Merci Mikhail

Oui Imoka, que je mette une parenthèse pour chaque condition ou pour l'intégralité du if, ca ne m'affiche pas la msgbox lorsque mes 2 conditions sont vraies et ca me lance en revanche le script après else. Bizarre

function start(){
var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
if((f.getRange('P1').getValue()<6) && (f.getRange('N1').getValue()==f.getRange('N2').getValue())){
  Browser.msgBox('Session déjà démarrée!', Browser.Buttons.ok)
}
else {
  f.getRange('P1').setValue('1')
  f.getRange('N2').activate();
  f.getRange('N1').copyTo(f.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  }
}

edit, bon j'ai testé avec les 2 conditions séparées

(f.getRange('P1').getValue()<6) 

fonctionne bien et m'affiche la msgbox

en revanche

f.getRange('N1').getValue()==f.getRange('N2').getValue()

ne marche pas.

Pourtant par formule je vérifie bien que la condition N1=N2 est vraie

N1 et N2 sont en format date. Si je change et que je mets un nombre, ca fonctionne.

Il faut donc que dans le script j'ajoute l'information du format date visiblement.

Hello

Je me suis un peu remis sur mon projet

https://docs.google.com/spreadsheets/d/1VD3-5ai1pEcmXGt__3cMIY2nceZFQf4G388l_7R0A4A/edit#gid=2851511...

Sur mon bouton start je veux mettre 3 conditions pour lesquelles je veux afficher un message d'erreur

- date du jour < date de début d'une session.

Dans l'onglet NOM1 La date du jour est en M2 et la date du projet est en M1

J'ai donc écrit ce code qui fonctionne bien

if((f.getRange('M2').getValue()<f.getRange('M1').getValue())){ 
  Browser.msgBox('Merci d attendre la prochaine session!', Browser.Buttons.ok)
}
else {

- session déjà démarrée afin d'interdire de reprendre à 0 alors que des choix ont déjà été effectués

Une session est considérée démarrée lorsque P1>1 (il s'incrémente lors d'un choix) et que N2=N1

Le script suivant fonctionne également

if((f.getRange('P1').getValue()>1) && (f.getRange('N1').getValue()==f.getRange('N2').getValue())){
  Browser.msgBox('Session déjà démarrée!', Browser.Buttons.ok)
}
else {

- Aucun résultat n'a été enregistré afin d'interdire de redémarrer une session

Un résultat s'affiche automatiquement si une session de 6 questions est terminée. Le résultat s'affiche dans l'onglet résultat. Je veux que si un résultat est inscrit dans le tableau, alors on ne peut pas appuyer sur start qui redémarrerait la session

J'ai donc écrit ce code, mais il ne marche pas

if((fscore.getRange(2,l+1).getValue)>0){ 
  Browser.msgBox('Vous avez déjà participé à cette session!', Browser.Buttons.ok)
}
else {

Pour faire le test, il faut modifier M1 en mettant un nombre inférieur à M2 et appuyer sur start. Faites une session complète en cliquant 6 fois sur A ou B jusqu'à finir une session. Un score se met donc dans l'onglet résultat. Et alors on ne doit pas pouvoir rappuyer sur start, sauf que ca ne marche pas

Rechercher des sujets similaires à "macro gestion choix successif"