🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

farbig markierte Felder zählen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
dropkicktobi
Beiträge: 59
Registriert: Fr 17. Aug 2012, 09:37

farbig markierte Felder zählen

Beitrag von dropkicktobi » Mi 20. Feb 2013, 13:46

Hi zusammen,

ich möchte gern zählen lassen, wieviel mit "x" markierte Zellen einer Farbe in einer Zeile sind. Es fällt mir schwer das Problem zu formulieren, deßhalb schaut bitte mal in die angehängte Datei.

Grüße
Tobias 8-)
Dateianhänge
TEST3x.ods
(9.79 KiB) 245-mal heruntergeladen

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: farbig markierte Felder zählen

Beitrag von F3K Total » Mi 20. Feb 2013, 22:30

Hi,
das geht per Makro etwa z.B. so

Code: Alles auswählen

Sub S_Count_colors
dim acolors (2,4) as variant
    acolors(0,0) = "Grün"
    acolors(0,1) = "Blau"
    acolors(0,2) = "Gelb"
    acolors(0,3) = "Rot"
    acolors(0,4) = "Weiss"
    acolors(1,0) = 44544
    acolors(1,1) = 39423
    acolors(1,2) = 15138560	
    acolors(1,3) = 16711680
    acolors(1,4) = -1   
    osheet = thiscomponent.sheets.getbyname("Test")
    orange = osheet.getcellrangebyname("B2:F7")
    oaddress = orange.rangeaddress
    nstartcolumn = oaddress.startcolumn
    nendcolumn = oaddress.endcolumn
    nstartrow = oaddress.startrow
    nendrow = oaddress.endrow
    for i = nstartrow to nendrow
        for j = nstartcolumn to nendcolumn
        ocell = osheet.getcellbyposition(j,i)
            for k = 0 to 4
                if ocell.cellbackcolor =  acolors(1,k) and ocell.formula = "x" then 
                acolors(2,k) = acolors(2,k)+1
                endif
            next k
        next j
        for l = 0 to 4
            otargetcell = osheet.getcellbyposition(8+l,i)
            otargetcell.value = acolors(2,l)
            acolors(2,l) = 0
        next l
    next i
End Sub
Siehe Beispiel
Dateianhänge
TEST3x.ods
(12.01 KiB) 291-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten