Renklere göre toplama yapmak
Aslında daha basit örneklerle ilerlemek düşünülebilir. Ancak bu derste azıcık ileri saracağız.
Pardus forumlarında bir arkadaş renklere göre hücre toplamanın nasıl yapılacağını sormuştu.
Allah'ın izni ile bir çözüm geliştirdik.
Şimdi sizlere de izah etmeye çalışalım.
Aşağıdaki kütüğü
/home/erdem/.config/libreoffice/4/user/Scripts/python
dizinine renkli.py
ismi ile kaydediniz.
Burada erdem yerine kendi kullanıcı adınızı seçiniz.
import uno
def rengeGoreTopla(renk):
belge = XSCRIPTCONTEXT.getDocument()
sayfa = belge.Sheets[0]
renkliHücre = sayfa[renk]
istediğimizRenk = renkliHücre.CellBackColor
toplam = 0
for satır in range(0, 19):
for sütun in range(0, 11):
hücre = sayfa.getCellByPosition(sütun, satır)
if hücre.CellBackColor == istediğimizRenk:
okunan = hücre.getValue()
toplam += okunan
renkliHücre.setString(str(toplam))
return
def renkliTopla(birşeyler):
renkliHücreler = { "M1", "M2", "M3", "M4", "M5" }
for hücre in renkliHücreler:
rengeGoreTopla(hücre)
Makroyu çalıştırdığınızda M1:M5
aralığındaki hücrelerin renklerine göre A1:K19
arasında bulunan sayıları topluyor.
Veriler değiştiğinde makronun çalışması için altaki Sayfa1
e sağ tıklayınız.
Sayfa Olayları -> İçerik değişti
ata Makro
yolunu takip ederek renkli içinden renkliTopla
yı seçiniz.
Makroların çalışabilmesi için Araçlar -> Seçenekler -> Güvenlik -> Makro Güvenliği
yolunu takip ederek Düşük
ya da Orta
olarak seçmek gerekiyor.
Orta düzey güvenlik seçerseniz makro içeren her belgede sizden onay istiyor.
Uygulama için oluşturduğumuz hesap tablosunu buradan indirebilirsiniz.
Yorumlar