🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
CALC ist die Tabellenkalkulation, die Sie immer wollten.
-
Lebewesen
- Beiträge: 5
- Registriert: Sa 15. Jan 2011, 14:05
Beitrag
von Lebewesen » Sa 15. Jan 2011, 14:53
Hallo erstmal,
ich habe ein Problem mit einer selbsterstellen Funktion, und zwar soll diese die Farbigen Zellen zählen. Das funktioniert auch, wenn ich die Zellen direkt angebe. Allerdings schaffe ich es nicht, dass ich der Funktion einen Bereich übergeben kann. Ich hoffe ihr könnt mir helfen.
Code: Alles auswählen
function farbezaehlen(rng As Range)
oDoc = thisComponent
oSheet = oDoc.sheets(0) 'erstes Tabellenblatt
oBereich = oSheet.getCellRangeByName(rng)
x = 0
y = 0
'auslesen der Eckpunkte
iErsteSpalte = oBereich.rangeAddress.startColumn
iErsteZeile = oBereich.rangeAddress.startRow
iLetzteSpalte = oBereich.rangeAddress.EndColumn
iLetzteZeile = oBereich.rangeAddress.EndRow
For l = 0 to iLetzteZeile-iErsteZeile
For m = 0 to iLetzteSpalte-iErsteSpalte
oCell=oBereich.getCellByPosition(m,l)
if oCell.IsCellBackgroundTransparent = false then 'zählt Zellen die nicht transparent sind
x = x + 1
end if
next m
next l
Farbenzaehlen=x
End function
Zuletzt geändert von
Lebewesen am Mi 19. Jan 2011, 07:18, insgesamt 1-mal geändert.
-
karolus
- * LO-Experte *
- Beiträge: 2533
- Registriert: Fr 10. Dez 2010, 10:01
Beitrag
von karolus » So 16. Jan 2011, 14:51
Hallo
farbezaehlen ist ungleich farbe
nzaehlen
Du musst die Funktion in der Form
=FARBEZAEHLEN("B4:D20") aufrufen.
Code: Alles auswählen
function farbezaehlen( rng as string )
oDoc = thisComponent
oSheet = oDoc.sheets(0) 'erstes Tabellenblatt
oBereich = oSheet.getCellRangeByName(rng)
'auslesen der Eckpunkte
iErsteSpalte = oBereich.rangeAddress.startColumn
iErsteZeile = oBereich.rangeAddress.startRow
iLetzteSpalte = oBereich.rangeAddress.EndColumn
iLetzteZeile = oBereich.rangeAddress.EndRow
For irow = iErsteZeile to iletzteZeile
For icol = iErsteSpalte to iletzteSpalte
oCell=osheet.getCellByPosition( icol, irow )
if not ocell.IsCellBackgroundTransparent then 'zählt Zellen die nicht transparent sind
x = x + 1
end if
next icol
next irow
Farbezaehlen = x
End function
Gruß Karo
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
Lebewesen
- Beiträge: 5
- Registriert: Sa 15. Jan 2011, 14:05
Beitrag
von Lebewesen » Di 18. Jan 2011, 07:10
Hallo
ich habe immer noch ein Problem. In der Zeile "oBereich = oSheet.getCellRangeByName(rng)" bekomme ich die Fehlermeldung "BASIC-Laufzeitfehler. Objektvariable nicht belegt." woran könnte das liegen?
Dieses Problem tritt sowohl in der aktuellsten LO Version auf, als auch unter OO.
Gruß
Bastian
-
karolus
- * LO-Experte *
- Beiträge: 2533
- Registriert: Fr 10. Dez 2010, 10:01
Beitrag
von karolus » Di 18. Jan 2011, 11:13
Hallo
Hab ich nicht deutlich genug erwähnt, das du den Zellbereich in Anführungszeichen setzen musst ?
Du musst die Funktion in der Form =FARBEZAEHLEN("B4:D20") aufrufen.
Karo
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
Lebewesen
- Beiträge: 5
- Registriert: Sa 15. Jan 2011, 14:05
Beitrag
von Lebewesen » Di 18. Jan 2011, 23:38
Hallo Karo
DASS ist mir entgangen! Und darüber habe ich mir Stunden den Kopf zerbrochen...
Vielen Dank
Bastian

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.