Mise en forme conditionnelle selon cases à cocher

Bonsoir !

Voilà quelques temps que j'essaye tant bien que mal de faire une mise en forme conditionnelle un peu particulière.

En gros, l'idée serrait que lorsque je coche un case (comme sur l'illustration ci-dessous en [B8]), une mise en forme conditionnelle s'applique sur l'intégralité de mon tableau en [A19:B], mettant en couleur/surbrillance le mot associé à la ligne de la case cochée (en l'occurence, ici "Clôture").

Seulement, ça m'a l'air plutôt complexe à faire et les quelques formules que j'ai pu essayer de mon côté n'ont pas portée leurs fruits.... Si l'un d'entre vous à une idée/solution, je suis tout ouïe !

- Un très grand merci à tous ceux qui essayeront.

Salut,

Je te montre un exemple de ce qui est possible. A voir comment l'adapter à ton fichier (fichier que tu n'as d'ailleurs pas fourni ).

Ma macro fonctionne en double-cliquant sur un mot-clef et n'indique que le premier mot-clé d'une ligne si ce mot y est plusieurs fois présent (par exemple le mot pomme à la ligne 12).

Cordialement.

225essai-orakur.xlsm (23.91 Ko)

Salut Yvouille !

Grand merci pour ta réponse.

C'est exactement ce genre de résultats que je souhaiterai obtenir, c'est top, merci ! Seulement, l'optimum pour moi ce serrait de l'automatiser sans avoir à passer par une macros (donc sous formule de mise en forme conditionnelle) afin de le rendre transportable et polyvalent sur mes autres projets. Tu penses que c'est réalisable/concevable de cette manière ?

N.B. : Je travaille sur Googlet Sheet. Voici une copie temporaire du fichier exemple :

.

Salut,

J'ai pris ta feuille, l'ai transformée en .xlsm et y ai adapté ma macro.

Tu pourrais faire de même avec tes autres fichiers, car je ne pense pas qu'il existe une solution hors macros. Si tu ne sais pas comment le faire, je pourrais te le montrer. Ou sinon, tu as combien d'autres fichiers à adapter ?

Attention : la recherche avec ''Laine'' trouve ''plaine'' et j'ai dû enlever les signes ''-'' à tes mots-clés ''PROG'', FPRO'', etc.

Cordialement.

65test-de-maf-v1.xlsm (96.76 Ko)

Encore merci Yvouille. Ta macro est superbe, elle devrait bien me servir à l'avenir ! J'essayerai de l'adapter à ma manière en macro compatible sheet si j'y arrive un jour. Ta solution est sûrement même meilleure qu'avec des cases à cocher, c'est bien plus pratique !

Dans tous les cas, en attendant, si quelqu'un passe dans le coin avec quelques compétences en conversion VBA vers GS Script, ou d'autres idées aussi chouette que celles d'Yvouille ça serrait vraiment super.

Bonjour,

Je me suis penché (un bon moment) sur ton problème et je peux te proposer ça :

google sheet coloration

Tu peux cocher une case à la fois (ça décoche les autres, un peu comme des boutons radio) et ça recherche ensuite le mot concerné et le passe en rouge

Le code apps script :

function onEdit() {

  var f = SpreadsheetApp.getActiveSheet(), c = f.getActiveCell();

  // Si une case à cocher (= si valeur de type TRUE ou FALSE)
  if (typeof c.getValue() === 'boolean') {

    var p = f.getRange('A19:B2000'), tabP = p.getValues(), cRow = c.getRow(), cValue = c.offset(0, -1).getValue().toLowerCase(), cLen = cValue.length, style = SpreadsheetApp.newTextStyle().setForegroundColor('#ff0000').setBold(true).build();

    // Texte en noir + normal
    p.setFontColor('#000000');
    p.setFontWeight("normal");

    // Cases cochées
    for (var ligne = 2; ligne <= 11; ligne++) {
      if (ligne != cRow) {
        f.getRange(ligne, 2).setValue(false);
      }
    }

    // Mise en forme
    if (c.getValue()) { // Si coché

      for (var ligne = 19; ligne <= 2000; ligne++) {

        var texteA = tabP[ligne - 19][0].toLowerCase(), texteB = tabP[ligne - 19][1].toLowerCase(), posA = texteA.indexOf(cValue), posB = texteB.indexOf(cValue);

        // Colonne A
        if (posA > -1) {
          f.getRange(ligne, 1).setRichTextValue(SpreadsheetApp.newRichTextValue().setText(tabP[ligne - 19][0]).setTextStyle(posA, posA + cLen, style).build());
        }

        // Colonne B
        if (posB > -1) {
          f.getRange(ligne, 2).setRichTextValue(SpreadsheetApp.newRichTextValue().setText(tabP[ligne - 19][1]).setTextStyle(posB, posB + cLen, style).build());
        }

        // Sortie
        if (texteA == '') {
          break;
        }
      }
    }
  }
}

Et le fichier Google Sheets (pour tester : Fichier > Créer une copie) :

https://docs.google.com/spreadsheets/d/10Hx0pceHA-lWYQcZlDcQtDlMXtGVd6Wb0ptOL4m3zYs/edit?usp=sharing

Cordialement,

Bonjour Sébastien,

Un immense merci pour le temps que vous avez pu y consacrer, c'est exactement ce qu'il me fallait !

Plus qu'à le moduler pour en changer l'échelle et la position et c'est parfait. C'est le digne complément de la macro Excel d'Yvouille, vous êtes tous les deux au top, cela va beauuuuucoup me servir, merci à tous les deux, ça bien plaisir.

Problème résolu !

Rechercher des sujets similaires à "mise forme conditionnelle cases cocher"