Bereich auf Formel prüfen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Bereich auf Formel prüfen

Beitrag von clag »

Hallo zusammen,

ich möchte einen Zell-Bereich zB A5:G150 überprüfen ob er komplett mit Formeln gefüllt oder ob der Bereich formelfrei ist.
Ich denke eine Matrixformel mit ISTFORMEL() sollte es tun, aber das krieg ich nicht gebacken :-?

kann mir da mal jemand auf die Sprünge helfen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Bereich auf Formel prüfen

Beitrag von balu »

Hallo clag,
ich möchte einen Zell-Bereich zB A5:G150 überprüfen ob er komplett mit Formeln gefüllt oder ob der Bereich formelfrei ist.
Und was ist mit der dritten Möglichkeit: es befindet sich eine, oder nur ein paar Formeln im Zellbereich? Also der Bereich ist nicht komplett leer, aber auch nicht komplett voll.

Ich denke ein Matrixformel mit ISTFORMEL() sollte es tun, aber das krieg ich nicht gebacken
Zeig doch mal was Du versucht hast. Vielleicht warst Du ja schon nahe dran gewesesn.

Die Option in den Optionen ->Anzeigen ->Formeln reicht dir nicht, warum?

Und was soll geschehen wenn die Überprüfung negativ beziehungsweise positiv ausgefallen ist?



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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereich auf Formel prüfen

Beitrag von clag »

Hallo Balu,
balu hat geschrieben:Die Option in den Optionen ->Anzeigen ->Formeln reicht dir nicht, warum?
weil ich die Tabelle nicht immer voll im "Blick" habe teilweise arbeite ich im 20% Zoom Modus um zumindest strukturell eine Überblick zu haben

Mein eigentliches Anliegen ist ist eine Formel bzw Makro fähige "Freigabe/" also 0/1 Zellinhalt, das der Bereich nur Werte bzw Formeln enthält
eben weil ich eine visuelle Kontrolle umgehen will, mit BF und Hintergrundfarbe habe ich auch schon probiert weil es auffälliger ist

Es ist eine Vorlage zum importieren von Daten die mit Formeln vor ausgefüllt ist, die aber nicht sichtbar sind, weil "=wenn(keinArgumente;;"") ",
im Verlauf dann werden Formeln durch die Werte ersetzt und wenn alle Formeln ersetzt sind möchte ich eine "Freigabe" zum speichern und schließen


{=ISTFORMEL(D11:G15)}
{=ZÄHLENWENN(D11:G15;ISTFORMEL())}
{=ZÄHLENWENN(D11:G15;ISTFORMEL(D11))}
{=ZÄHLENWENN(D11:G15;ISTFORMEL(D11:G15))}
usw

und weitere solche Varianten ist aber eher hilfloses stochern und probieren
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereich auf Formel prüfen

Beitrag von clag »

hallo

ist ja merkwürdig, scheint als würde ISTFORMEL() sich der Anwendung in einer Matrix verweigern?
istformeloderwas.png
istformeloderwas.png (8.93 KiB) 1027 mal betrachtet
hat jemand eine Idee warum das Ergebnis unerwartet = 0 ist ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Bereich auf Formel prüfen

Beitrag von balu »

Hallo clag,

ich habe keine Ahnung warum man mit ISTFORMEL keine Matrixformel für einen Datenbereich erstellen kann. Ich hatte dich um deine Bemühungen bezüglich der Matrixversuche gebeten, da mir ungetestet folgendes vorschwebte:

Code: Alles auswählen

{=MAX(WENN(ISTFORMEL(N17:N19);1;"-"))}
Doch leider funktioniert das auch nicht.

Jedoch auf eine Datumspalte angewendet funktioniert folgendes.

Code: Alles auswählen

{=MAX(WENN(ISTZAHL(A16:A18);1;"-"))}


Nun dachte ich mir das es vielleicht möglich wäre die Calc Funktion in ein Makro zu packen,

Code: Alles auswählen

bformel = oFunctionAccess.callFunction("ISFORMULA", args())
aber das haut auch nicht so richtig hin.

Schlußendlich bleibt dir nur noch folgendes übrig. Frage mit Makro den Zelltyp ab, und entscheide selbst wie es dann weiter gehen soll.
Simpelstes Beispiel:

Code: Alles auswählen

Sub Main
	oCellenType = ThisComponent.Sheets.GetByName("Tabelle1").getCellByPosition(1, 1).Type   'B2 Beispielzelle
	print oCellenType

	If oCellenType = 3 then
		Print "Ausgewählte Zelle enthällt eine Formel!"
	End if
End Sub
Ergebnisse von .Type
0 = Leer
1 = Zahl
2 = Text
3 = Formel
Mehr habe ich jetzt nicht überprüft.

Hilft dir das weiter?



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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Bereich auf Formel prüfen

Beitrag von Stephan »

hat jemand eine Idee warum das Ergebnis unerwartet = 0 ist ?
soweit ich das feststellen kann werden Formeln, unter diesen Umständen, dann nicht als Formeln gezählt wenn sie sich auf Zellen innerhalb des Bereichs beziehen in dem die Zählung der Formeln erfolgen soll.

Bezogen auf Dein Bild also dürfte die Formel "=SUMME(G1:I1)" in Zelle F1 nicht gezählt werden, wenn die Formel in F1 jedoch lautet "=SUMME(A1:C1)" wird sie gezählt. (in OOo 3.3.0)

Ich würde somit empfehlen den letzten Vorschlag von Balu in eine Basic-Function zu packen und diese benutzerdefinierte Funktion dann zu verwenden, oder Du müsstest mit Hilfszellen arbeiten, wenn Du kein Basic willst.


Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereich auf Formel prüfen

Beitrag von clag »

Hallo Balu & Stephan

hey erst einmal Danke fürs knobeln, hatte ja gedacht es liegt an meinen Formeln
ja wenn es nicht anders geht dann über eine DIY Funktion()

@ Stephan
Deine Erklärung habe ich nicht ganz geschnallt
vielleicht kannst du in der Datei es für mich deutlicher darstellen ich lade mal die kleines Bsp hoch?
istformel_bockt.ods
(9.98 KiB) 50-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Bereich auf Formel prüfen

Beitrag von Stephan »

bezogen auf dEine Beispieldatei:

Steht in z.B. J21 die Formel:

=ZÄHLENWENN(F1:I6;ISTFORMEL(F1:I6))

dann wird 0 zurückgegeben. Änderst Du nun z.B. den Inhalt der Zelle F6 von "=$D$6*A6" in "=A7" so wird das gezählt und in J21 steht nun 1.

Nein, diese Erkenntnis nutzt Dir nichts es ist nur eine Beobachtung die mir auffiel.


Gruß
Stephan
Antworten