Sheets : "remise à zéro" quand nouvelle ligne

si à un item peut correspondre plusieurs risques, alors j'ajoute en J une colonne qui concatène les risques par

=textjoin("|";true;D3:I3)

et la détection est alors

=if(counta(iferror(filter('liste phrase H'!$A3:$A;'liste phrase H'!$A3:$A=TRUE;search(R$1;'liste phrase H'!$J3:$J));))>0;"x";)

ce qui signifie ...

=if(counta(
iferror(
filter( VOIR CI DESSOUS )
;)   >> si erreur, j'efface le libellé d'erreur qui serait alors considéré comme un risque !!
)>0
;"x" >> si il existe au moins un risque alors je mets x
;)   >> sinon rien (blanc)

et pour le cœur de la formule

filter(
'liste phrase H'!$A3:$A;                >> je filtre la colonne A (peu importe car in fine on décompte)
'liste phrase H'!$A3:$A=TRUE;           >> si cochée
search(R$1;'liste phrase H'!$J3:$J)     >> et si je trouve le risque dans la plage des risques concaténés
)

Bonjour ! Nouveau problème en vue

Dans récap des choix, dans les colonnes A B C, un message d'erreur apparait "Erreur Chargement des données…". "Loading" s'affiche mais rien n'apparait par la suite.

Merci pour les explications de cette formule (récap colonne R S T U ....) parce que là j'étais totalement paumé

Peux-tu me redonner la formule ? car je l'avais changée pour éviter :

Dans récap des choix, dans les colonnes A B C, un message d'erreur apparait "Erreur Chargement des données…". "Loading" s'affiche mais rien n'apparait par la suite.

C'est curieux car cela fonctionnait et puis plus rien !

edit : je viens d'ouvrir le fichier et c'est ok ! mais je vais proposer autre chose plus solide sans passer par une fonction personnalisée !

j'ai modifiée la formule comme suit

=index(inventaire!A:A;max(iferror(MATCH("zzz";inventaire!$A:$A;1);0);iferror(MATCH(9^9;inventaire!$A:$A;1);0)))

Dans récap, lorsque l'on valide, les données sont reportées dans inventaire en colonnes N O P Q au lieu de O P Q R donc je pense qu'il faut modifier :

function valider(){
  // définitions
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var inventaire = classeur.getSheetByName('inventaire');
  var choix = classeur.getSheetByName('recap des choix');
  // recherche dernière ligne
  var der = getLastDataRow(inventaire,'A')
  // recopie des valeurs
  choix.getRange('N2:AV2').copyTo(inventaire.getRange('N'+der), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)

en (pour la dernière ligne)

// recopie des valeurs
  choix.getRange('O2:AW2').copyTo(inventaire.getRange('O'+der), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
}

Est ce que vous pensez que c'est bon ? (je préfère vous demander quand même plutôt que de faire des bêtises)

OUI mais en ajoutant une colonne avant N dans "recap choix" et corrige comme suit

choix.getRange('O2:AW2').copyTo(inventaire.getRange('O'+der), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)

j'ai fait sur le fichier, je te laisse tester

C'est bien tu maîtrises

Merci pour le compliment !

Quelque questions concernant la "beauté" du fichier :

1. Y a-t-il un moyen pour que la validation des données en H et I (dans inventaire) puisse se mettre automatique quand on a un nouveau produit ? ou bien je continue de faire copier/coller ?
2. Lorsqu'un nouveau produit est complétement terminé, est il possible d'avoir un trait automatique ou une couleur automatique (1 produit sur 2) pour séparer tous les produits ?
3. Si je veux rajouter des colonnes (pour le moment c'est pas le cas mais ne sait on jamais) quelle formule sera à changer ? je suppose que c'est la fonction "valider" et "raz" à mettre à jour
4. Le bouton "nouvelle ligne" ne sert plus à rien maintenant ? je peux donc le supprimer ?

1. comment est déterminé H et I ? y a t'il une table ? ou bien tu veux dire comment assurer la formule de validation ? dans ce cas recopie la une fois pour toute sur toute la colonne de haut en bas

2. tu peux faire une mise en forme conditionnelle pour mettre une bordure au-dessus quand A est renseigné :

  • sélectionne tout sans l'en-tête
  • format > mise en forme conditionnelle
  • dans le menu, choisir la formule personnalisée est
  • ... hé bien, non je n'ai pas trouvé comment faire comme avec excel !

3- probablement ... ce que je propose, documente bien tes formules et tes macros et place toi dans l'hypothèse où quelqu'un va reprendre; il ne s'agit pas de concevoir les formules et les scripts mais être capables de comprendre et modifier

4- absolument

Pour H et I, c'est seulement une validation de donnée avec une liste d'éléments. c'est ce que j'ai fait au début de copier coller sur toute la colonne mais pour 1 produit il peut y avoir 6 lignes le concernant. Donc je devais les effacer.

je vais rechercher si on peut l'automatiser alors

Rechercher des sujets similaires à "sheets remise zero quand nouvelle ligne"