Script pour surligneur une cellule en fonction d'une autre

Cristalline

Nouveau membre
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
 

zeltron54

Membre d’élite
29 Mars 2008
1 615
247
Lorraine
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
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 496
1 543
Angoulême
ça s'appelle une mise en forme conditionnelle :
 

zeltron54

Membre d’élite
29 Mars 2008
1 615
247
Lorraine
@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.
 

Cristalline

Nouveau membre
26 Février 2020
3
0
Merci pour votre réponse !!
Cela fonctionne sauf que qd la valeur de B2 repasse à 0 les cellules restent surlignées…
Encore merci
 

zeltron54

Membre d’élite
29 Mars 2008
1 615
247
Lorraine
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 ...
 

Cristalline

Nouveau membre
26 Février 2020
3
0
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 ?
 

zeltron54

Membre d’élite
29 Mars 2008
1 615
247
Lorraine
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

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 496
1 543
Angoulême
@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 !
 

zeltron54

Membre d’élite
29 Mars 2008
1 615
247
Lorraine
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