mit CounIf Zahlen in einem array zählen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gurkende_gurke
**
Beiträge: 42
Registriert: So, 21.09.2008 16:42

mit CounIf Zahlen in einem array zählen?

Beitrag von gurkende_gurke »

Hallo liebe OOo-community,
Ich habe ein Problem mit einem Makro. Ich will überprüfen ob zahlen von 1-4 <>1 (Also öfter oder seltener) in meinem Array "Feld1(1,1)" vorkommen. Ich denke dies müsste ich mit countif() machen, aber mein versuch endet mit einem "Fehler in Klammerschachtelung".
hier ist mein code:

Code: Alles auswählen

if countif(Feld1;"1")<>1 then
Danke im Vorraus für jede Hilfe
Zuletzt geändert von gurkende_gurke am So, 11.01.2009 16:02, insgesamt 1-mal geändert.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: mit CounIf Zahlen in einem array zählen?

Beitrag von balu »

Hallo Gurke,

in Makros kenne ich mich nicht so aus, aber COUNTIF ist ja ZÄHLENWENN und dementsprechend suchst Du falsch. Da Du ja nach einer Zahl suchst, lass da mal die doppelten Anführungsstriche weg, schreib einfach 1 hin. Und als nächstes lass auch noch die Ungleichüberprüfung (<>) weg, denn dann müsste rein theoretisch dir angezeigt werden wie oft die 1 vorhanden ist. Also versuchs doch einfach mal mit

Code: Alles auswählen

if countif(Feld1;1) then
Ferner vermute ich mal, dass mit Feld1 etwas nicht stimmt. Mehr kann ich dir aber dazu auch nicht sagen, dass müssten dann schon die Spezialisten hier übernehmen :wink:


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
gurkende_gurke
**
Beiträge: 42
Registriert: So, 21.09.2008 16:42

Re: mit CounIf Zahlen in einem array zählen?

Beitrag von gurkende_gurke »

Danke Balu, aber ich will ja gar nicht angezeigt bekommen wie oft die 1 vorhanden ist. Mein code ist nur ein Ausschnitt meiner Subroutine, und ich muss das <> 1 da drin behalten (hab mich vertan, ausversehen statt <>1 <>0 geschrieben, da ich wenn die 1 öfter oder seltener als 1 mal vorkommt die Schleife wiederholen will. ("if soundso <>1 then
BLNAbbruch=false
else BLNAbbruch=true" falls dir das was sagt)
Jemand eine Idee wie das geht?
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: mit CounIf Zahlen in einem array zählen?

Beitrag von turtle47 »

Hallo Zusammen,
balu hat geschrieben:Da Du ja nach einer Zahl suchst, lass da mal die doppelten Anführungsstriche weg, schreib einfach 1 hin
Das ist in diesem Fall egal, es funktionieren beide Versionen.

Code: Alles auswählen

countif(Feld1;1) 
Das Semikolon ";" in der Formel muss ein Komma sein!

Code: Alles auswählen

countif(Feld1,1) 
Wenn man in einem Makro eine Calc-Funktion verwenden will, dann muss man zunächst folgende Zeile aufrufen:

Code: Alles auswählen

FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
Dann könnte der Code folgenermassen aussehen:

Code: Alles auswählen

FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")  
	aResult=FuncAcc.callFunction("countif",array(Feld1,1))
	if aResult <> 1 then
	........
Ich hoffe das hilft weiter?

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
gurkende_gurke
**
Beiträge: 42
Registriert: So, 21.09.2008 16:42

Re: mit CounIf Zahlen in einem array zählen?

Beitrag von gurkende_gurke »

Danke Jürgen, du bist wie so oft mein Retter =)
Antworten