1 votos

Contar celdas con color de fondo

En un rango de celdas, ¿hay alguna manera de contar las que tienen cierto color de fondo?

1voto

user3439894 Puntos 5883

Aquí hay un ejemplo en AppleScript que contará el número de celdas en un rango que tiene el color de fondo rojo.

Imagen de Numbers

Nota que el documento de Numbers estaba abierto en el fondo de Script Editor.

Cuando se ejecutó el script, mostró el siguiente cuadro de diálogo.

Imagen de Mostrar Diálogo

--  # Variables definidas por el usuario

set theRange to "A1:L10"

--  # El color de fondo de las celdas del rango. Expresado como una lista de valores RGB (Rojo, Verde, Azul) 
--  #  entre 0 y 65535. Por ejemplo, el color rojo es: {65535, 0, 0}

set R to 65535
set G to 0
set B to 0

--  # Otras variables

set thisColor to ""
set theRGBValue to {}
set theCount to 0

tell application "Numbers"
    tell document 1
        tell sheet 1
            tell table 1
                tell range theRange
                    repeat with i from 1 to (cell count)
                        set thisColor to background color of cell i as string
                        if thisColor is not "" then
                            set theRGBValue to (background color of cell i)
                            if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
                                set theCount to theCount + 1
                            end if
                        end if
                    end repeat
               end tell
            end tell
        end tell
    end tell
end tell

display dialog "El conteo de celdas con el color {" & R & ", " & G & ", " & B & "} es: " & theCount buttons {"OK"} default button 1

Nota: Esto se probó en una versión antigua de Numbers (versión 09 2.3) y puede necesitar ajustes para versiones más recientes.

Si no sabes cuál es el valor RGB de una determinada celda para insertarlo en el script anterior, entonces para obtener el valor RGB del color de fondo de una determinada celda, por ejemplo, F5, utiliza:

tell application "Numbers"
    get background color of cell 1 of range "F5:F5" of table 1 of sheet 1 of document 1

Solo como información, el ejemplo principal mencionado anteriormente podría condensarse en lo siguiente para el tell application "Numbers" bloque:

tell application "Numbers"
    tell range theRange of table 1 of sheet 1 of document 1
        repeat with i from 1 to (cell count)
            if (background color of cell i as string) is not "" then
                set theRGBValue to (background color of cell i)
                if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
                    set theCount to theCount + 1
                end if
            end if
        end repeat
    end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X