Script pour surligneur une cellule en fonction d'une autre

Cristalline

Membre enregistré
26 Février 2020
3
0
Bonjour,

J'aimerais changer le remplissage d'une cellule en fonction de la valeur de la cellule d'à côté et appliquer cela à tout mon document. J'ai commencé un script avec automator mais je suis bloquée...


Capture d’écran 2020-02-26 à 11.55.56.png




D'avance merci
 
Bonjour,

Un exemple de script qui : si la valeur de la cellule A2 est >1 met la cellule B2 de couleur rose
sinon met la couleur à jaune
La couleur est défini en fonction des valeurs RVB : rose = (65535, 0, 65535) jaune = (65535, 65535, 0)

Bloc de code:
tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        set lavaleur to the value of cell "A2"
        if lavaleur > 1 then
            set the background color of the cell "b2" to {65535, 0, 65535}
        else
            set the background color of the cell "b2" to {65535, 65535, 0}
        end if
    end tell
end tell
 
ça s'appelle une mise en forme conditionnelle :
 
@daffyb

Ok , mais pas de formules possibles dans numbers, la condition s'applique sur la cellule elle même (si la cellule contient xx alors on la met en couleur) à la différence d excel ou on peut mettre dans B2 --> si a2 = xx alors je met en couleur.
 
Le script ne s'exécute pas automatiquement ! il faut le lancer à chaque fois que tu veux l'exécuter !

A chaque fois que tu le lances il modifie la cellule en fonction de ce qu'il trouve ...
 
ok mais une fois lancé pour mon doc je ne suis pas obligée de le lancer à chaque fois que j'ouvre le doc ?
Je veux que la valeur des cellules de la colonne B définissent la couleur des cellules de la colonne A, du coup je note quoi à la place de B2 et A2 ?
 
Malheureusement le script ne se lance pas tout seul, il n'est pas incorporé à Numbers, donc il faut le relancer chaque fois qu'une valeur de la colonne B change afin de mettre à jour les couleurs de la colonne A. Je ne connaîs pas de manière de le faire automatiquement dans numbers.

Pour que le script s'occupe de toutes les cellules des colonnes A et B il faut faire une boucle pour appliquer la mise en couleur de toutes les cellules de la colonne. la boucle incrémentera la valeur de la ligne à traiter (A2 et B2 puis A3 et B3 etc...)
 
@daffyb

Ok , mais pas de formules possibles dans numbers, la condition s'applique sur la cellule elle même (si la cellule contient xx alors on la met en couleur) à la différence d excel ou on peut mettre dans B2 --> si a2 = xx alors je met en couleur.
en effet. Je suis déçu !
 
Bonjour,

Je te met un script exemple commenté qui colore les cellules colonne A en rouge si colonne B est >3 sinon remet en blanc.
Ce script sera à lancer à chaque fois que tu voudras mettre les couleurs du tableau à jour.

Bloc de code:
tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        set nblign to count row -- Nombre de lignes du tableau
        
        repeat with i from 2 to nblign --boucle de 2 a nombre de ligne
            set lacela to "A" & i --défini la cellule colonne A en cours
            set lacelb to "B" & i ----défini la cellule colonne B en cours
            set lavaleur to the value of cell lacelb -- obtient la valeur de la cellule B
            if lavaleur > 3 then -- si plus grand que 3
                set the background color of the cell lacela to {65535, 0, 65535} --si vrai color rouge
            else
                set the background color of the cell lacela to {65535, 65535, 65535} -- sinon color blanc
            end if
        end repeat
    end tell
end tell