Onglet colorié automatiquement

Bonjour à tous,

J'ai des notes de frais à faire toute l'année et pour retrouver la dernière j'aimerais si c'est possible mettre en couleur chaque note de frais après avoir saisi le N° de pièce qui se trouve en L4. M'enfin si c'est possible !

Merci

Cdt Alex

Bonjour Alex,

si je comprends bien tu aurais une note de frais par onglet ?

as-tu un bout de fichier exemple épuré que je comprenne bien ?

merci

Salut Alexander,

Je pense que tu peux y arriver en passant pas un trigger comme onEdit ou onSelectionChange(event) : https://www.youtube.com/watch?v=1GXp1CbSVdI

Je ne suis pas spécialiste mais je pense que ça peut t'aider ;)

Bonjour et merci pour vos réponses.

@Mike en effet j'ai 3 onglets par mois (au cas où) le souci c'est que le mois qui est passé n'est pas forcément muni d'achat donc ma 1ère demande cloche puisqu'il n'y aura pas de N° de NDF ?

Voici le lien et ce fichier est confidentiel. Merci

https://docs.google.com/spreadsheets/d/1ecPWoDUdFkkBBULXkHnziimjoIKo3oqz5lkK_o15GDo/edit#gid=9708859...

Cdt

Alex

Peux-tu ré-expliquer ce que tu souhaites !

Si j'ai bien compris, quand tu saisis une donnée en L4 d'un quelconque onglet ... tu souhaites lui donner une couleur particulière ? mais il y a déjà des couleurs dans les onglets ...

Une fois que j'ai compris, ce sera assez facile d'utiliser https://developers.google.com/apps-script/reference/spreadsheet/sheet#settabcolorcolor combiné avec onEdit(e)

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (cellule.getA1Notation()=='L4'){
    feuille.setTabColor("ff0000")
  }
}

mais il faudra aussi effacer là où c'était inscrit précédemment par

feuille.setTabColor(null);

ou leur remettre la couleur que tu souhaites

Si j'ai bien compris, quand tu saisis une donnée en L4 d'un quelconque onglet ... tu souhaites lui donner une couleur particulière ?

C'est ça sauf qu'il y a des onglets qui ne sont pas rempli car pas d'achat donc L4 sera vide et ne sert à rien, le but est de connaître le dernier onglet utilisé.

tu souhaites lui donner une couleur particulière ? mais il y a déjà des couleurs dans les onglets ...

En effet chaque collègue qui utilise un onglet le met en vert afin que le suivant sache, trouve, de suite un onglet pas encore utilisé.

Je me demande s'il ne faudrait pas agir sur la date, en A16 soit il y a une date et on colorie l'onglet en vert soit on supprime la date et la couleur disparaît.

Donc, ma proposition est-elle suffisante ?

Merci Mike, je vais mettre ça en place et reviens vers toi dès que possible.

Bonjour Mike, ça fonctionne, mais dans l'autre sens peut-on faire en sorte que lorsque je supprime le N° de pièce en L4 ça supprime la couleur de l'onglet ?

je l'attendais ...

function onEdit(event) {
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (cellule.getA1Notation() == 'L4') {
    if (cellule.getValue() == '') {
      feuille.setTabColor(null);
    } else {
      feuille.setTabColor("ff0000")
    }
  }
}

Comment dire

TU ES le MEILLEUR !!!

un grand merci Mike

Je vais changer ma signature

"Si Steelson n'existait pas il faudrait l'inventer"

que nenni !

Bon j'ai oublié de te dire que tu m'avais déjà fait un script <OnEdit> pour changer les points en virgules et avec le Script 'Color Onglet' ça ne se change plus.

Voir onglet "Janv-NDF2" colonne N

https://docs.google.com/spreadsheets/d/1ecPWoDUdFkkBBULXkHnziimjoIKo3oqz5lkK_o15GDo/edit#gid=7005734...

voici le cumul des 2 onEdit

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = e.source.getActiveSheet();
  var rng = e.source.getActiveRange();

  var texte = e.value;
  if (!isNaN(texte)) {
    var res = texte.replace(".", ",");
    rng.setValue(res);
    // ss.toast(res)
  }

  if (rng.getA1Notation() == 'A16') {
    if (rng.getValue() == '') {
      sh.setTabColor(null);
    } else {
      sh.setTabColor("#00ff00")
    }
  }

}

supprime tous les autres onEdit s'il en restait !

supprime tous les autres onEdit s'il en restait !

Ok il n'y en a plus.

Le point/virgule fonctionne.

Pour la couleur des Onglets quand je supprime la date en A16 l'onglet n'a plus de couleur, ce qui est normal, mais quand je remets une date rien ne se passe.

si j'essaie sur un onglet (TEST) tout fonctionne !! donc je ne comprends pas !

En inversant cela fonctionne

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = e.source.getActiveSheet();
  var rng = e.source.getActiveRange();

  if (rng.getA1Notation() == 'A16') {
    if (rng.getValue() == '') {
      sh.setTabColor(null);
    } else {
      sh.setTabColor("#00ff00")
    }
  }

  var texte = e.value;
  if (!isNaN(texte)) {
    var res = texte.replace(".", ",");
    rng.setValue(res);
    // ss.toast(res)
  }

}

le blocage devait être du à ceci sur une date

if (!isNaN(texte))

YES !

ça fonctionne un grand merci.

Rechercher des sujets similaires à "onglet colorie automatiquement"