Ligne qui clignotte

Bonjour a tous!

je vous présente le tableau que j'ai réussie à faire avec l'aide du forum. C'est un tableau pour les pièces en commande pour mon travail. (version public pour ici)

Le petit ajout que j'aimerai avoir c'est que:

lorsque dans la colonne N le chiffre soit de 1 (ou plus grand) et que le mot *EN COMMANDE* de la ligne K soit sélectionné, cette dit ligne clignote.

Comme dans l'exemple de mon tableau que j'ai publier, il faudrait que la ligne 9 clignote. le but de ça c'est que si je ne reçois pas une pièce, qu'il y a un avertissement .

prendre note aussi que la colonne N est le résultat d'une formule.

lien pour tableau

merci

Bonjour,

attention, le clignotement ne peut se faire que par un script, et on ne peut pas le faire à l'infini, il faut par exemple se limiter à 10 clignotements et être conscient que cela peut bloquer d'autres commandes

il faut aussi définir l'élément déclencheur (ce qui manuellement sera introduit pour faire clignoter), ici le clignotement se fera quand on mettra EN COMMANDE

function onEdit(event) {
  var feuille = event.source.getActiveSheet();
  var cel = event.source.getActiveRange();
  if ((feuille.getName() == 'commande') && (cel.getColumn() == 11) && (cel.getValue() == 'REÇU')) {
    sendEmail(cel.getRow())
  };
  if ((feuille.getName() == 'commande') && (cel.getColumn() == 11) && (cel.getValue() == 'EN COMMANDE')) {
    if (cel.offset(0, 3).getValue() > 1) {
      for (var i = 0; i < 6; i++) {
        feuille.getRange(cel.getRow(),1,1,15).setBackground(i % 2 ? "WHITE" : "RED");
        SpreadsheetApp.flush();
        Utilities.sleep(500);
      }
    }
  };
}

mais il vaut mieux éviter cela

Bonjour,

c'est pas exactement ce que je recherche (mais on ce rapproche :-)), car le mot *EN COMMANDE* va être déjà être inscrit dans le tableau et cela parfois depuis plusieurs jour.

faudrait que la ligne (ou une cellule) clignote en continue automatiquement conditionnel a le mot *EN COMMANDE* dans la colonne K soit là et que le nombre 1 (ou plus grand) soit inscrit dans la colonne N.

pour vous aidé à comprendre, la colonne N correspond à le nombre de jour avant que je reçois la pièce (quand la quantité est en négatif) ou le nombre de jour que je suis supposé d'avoir reçu la pièce (quantité positif) mais le problème c'est que si je ne reçois pas la pièce, j'ai aucune avertissement. Peut importe la manière, un popup, un clignotement de cellule ou d'une case, un email etc etc je veux juste avoir une moyen d'être avertie.

J'ai pensé à : *mise en forme conditionnelle* mais le problème c'est que j'ai pas trouvé comment le faire avec deux conditions.

clignote en continue automatiquement

ça, ce n'est pas possible, les scripts sont limités à 6 minutes, et le clignotement va entraver le fonctionnement

et pour le reste, c'est ce que j'avais dit "il faut aussi définir l'élément déclencheur (ce qui manuellement sera introduit pour faire clignoter)" ... quel est l'élément déclencheur ? l'ouverture du fichier ?

je pense qu'il y a d'autres possibilités comme faire un filtre sur les valeurs pour afficher les quelques lignes critiques, en tous cas je ne ferai pa de développement pour faire clignoter plusieurs lignes car je ne crois pas à cette solution

Oui!! a l'ouverture du fichier sa serai parfait.. un clignotement de quelque minute me suffirai

Les chiffres sont négatifs maintenant ? sinon il n'y aucun ligne qui correspond à "lorsque dans la colonne N le chiffre soit de 1 (ou plus grand)"

Bref, le jeu de données ne permet pas de faire des tests.

La solution est la suivante

function onOpen() {
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('commande');
  var data = feuille.getDataRange().getValues()
  var lignes = []
  data.forEach(function (row, i) {
    if (row[10] == 'EN COMMANDE' && row[13] >= 1) { lignes.push(i + 1) }
  })
  if (lignes.length > 0) {
    for (var i = 0; i < 6; i++) {
      lignes.forEach(function (ligne) {
        feuille.getRange(ligne, 1, 1, 15).setBackground(i % 2 ? "WHITE" : "RED");
      })
      SpreadsheetApp.flush();
      Utilities.sleep(200);
    }
  }
}

mais ta MFC est prioritaire, donc les lignes bleues ne pourront jamais clignoter !

woow merci ton code fonction bien.. mais comme tu ma dit, les ligne bleu son des couleur en alternance.. il y a tu moyen de les maitres secondaire? et ou dans ta formule peut-on allongé ou diminuer le temps de clignotement?

woow merci ton code fonction bien.. mais comme tu ma dit, les ligne bleu son des couleur en alternance..

et non, la MFC est prioritaire !

il y a tu moyen de les maitres secondaire? et ou dans ta formule peut-on allongé ou diminuer le temps de clignotement?

joue avec les paramètres, ici 6 pour 6 clignotements

for (var i = 0; i < 6; i++)

et la vitesse (200ms)

Utilities.sleep(200);

Bonjour,

Cela n'aurait pas été plus simple par formule (sans clignotement) mais par l'affichage d'une image (panneau attention) par exemple ?

oui aussi, comme expliquer précédemment, peux importe la manière je veux être avertie. La solution a Steelson fonctionne bien sans les couleurs en alternance mais cause un problème a ce niveau lorsque activé.

je pensais aussi créer une mise en forme conditionnel avec une formule personnalisé où tout simplement la ligne aurai une couleur différente mais j'ai aucune idée comment faire ça.

après réflexion, il y a peut-être une solution de clignotement ... puisque les MFC sont prioritaires, alors faisons en sorte que le clignotement soit le résultat d'une MFC en ajoutant une colonne qui prendra une valeur par intermittence

Avec une MFC en toute première priorité sur la ligne si S est égal à 1

function onOpen() {
  var feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('commande');
  var data = feuille.getDataRange().getValues()
  var lignes = []
  data.forEach(function (row, i) {
    if (row[10] == 'EN COMMANDE' && row[13] >= 1) { lignes.push(i + 1) }
  })
  if (lignes.length > 0) {
    for (var i = 0; i < 19; i++) {
      lignes.forEach(function (ligne) {
        feuille.getRange('S'+ligne).setValue(i % 2);
      })
      SpreadsheetApp.flush();
      Utilities.sleep(200);
    }
  }
}
clignote

J'ai essayer mais sa ne fonctionne pas de mon coté.

je te mais en ligne une version test en éditeur pour que tu l'essaie

lien editeur test

je ne peux pas intervenir, il faut juste ajouter une MFC sur A7:Z201 avec comme formule =$S7=1 et la remonter tout en haut

image

woow sa fonctionne !!!!

merci merci et merci!!!

Rechercher des sujets similaires à "ligne qui clignotte"