Donnez vie à vos documents numériques !
 

Script couleur d’une cellule en fonction d’une plage de valeurs

abracadabraPDF Forums PDF – Général Script couleur d’une cellule en fonction d’une plage de valeurs

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46075
    caucaubreizh
    Membre

    Bonjour, une question bête mais je n’ai pas trouvé de réponse sur le forum : Comment affecter une couleur en fonction d’une plage de valeurs d’une autre cellule (par ex: entre 8 et 11 une couleur et entre 12 et 20 une autre couleur) ?

    Je suis bloque par ce script de validation personnalisé:

    event.target.textColor = event.value >7 ? color.black: color.white
    event.target.fillColor = event.value >7? color.gray : color.white;

    Merci

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #65789
    bebarth
    Maître des clés

    bonjour,
    Pour écrire de cette façon, il faut écrire :

    Code:
    event.target.textColor=event.value>7?color.black:color.white;
    event.target.fillColor=event.value>7? color.gray:color.white;

    Je viens d’ailleurs de m’appercevoir que le script est bien écrit !

    Mais si c’est pour cacher le champ en fonction d’une valeur calulée, on peut juste écrire :

    Code:
    event.target.display=event.value>7?display.visible:display.hidden;

    Ça fait quand même 1 ligne de moins…
    @+
    :bonjour:

    #65790
    caucaubreizh
    Membre

    C’est sympa, mais ça ne répond pas du tout à ma question…

    #65791
    bebarth
    Maître des clés

    C’est donc que je ne l’ai pas comprise !
    Je relis…

    On va écrire ça plus simplement :

    Code:
    if (this.event.value>=8 && this.event.value<12) {
        this.event.target.fillColor=color.red;
    } else if (this.event.value>=12 && this.event.value<=20) {
        this.event.target.fillColor=color.green;
    } else {
        this.event.target.fillColor=color.white;
    }

    …aux bornes près !
    @+
    :bonjour:

    #65792
    Merlin
    Maître des clés

    Je reprend le script de Bebarth, adapté pour répondre à la question.  :geek:

    if (this.event.value>=8 && this.event.value<12) {
        this.getField(“NOMduCHAMPcible”).fillColor=color.red;
    } else if (this.event.value>=12 && this.event.value<=20) {
        this.getField(“NOMduCHAMPcible”).fillColor=color.green;
    } else {
        this.getField(“NOMduCHAMPcible”).fillColor=color.white;
    }

    Où il faut remplacer “NOMduCHAMPcible” par le vrai nom du champ qui doit changer de couleur.
    Ce script est à placé en action “champ désactivé” dans le champ qui contient la valeur.

    #65793
    caucaubreizh
    Membre

    Merci à tous les 2 ! Le script de Bebarth fonctionne très bien.
    Je vais essayer celui de Merlin qui me permettra sans doute des options supplémentaires.

    #65794
    caucaubreizh
    Membre

    Curieux, mais ça fonctionne très bien en “script de validation personnalisé” mais pas du tout en “action” avec “champ désactivé”….

    #65795
    Merlin
    Maître des clés

    Ce n’est pas curieux, c’est logique (et ça m’apprendra à parler trop vite).  :Smiley00:

    Pour que ça fonctionne en “champ désactivé” il faut remplacer tous les “event.value” par “event.target.value“, pour des raisons un peu longues à expliquer ici.
    :Smiley15:

    #65796
    caucaubreizh
    Membre

    Désolé Merlin, soit je ne comprends pas, soit je commets une erreur, mais ça ne fonctionne toujours pas.La formule de Bebarth fonctionne.
    Merci tout de même

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.