[Gelöst]Zelle auf Formel prüfen

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

Moderator: Moderatoren

Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

[Gelöst]Zelle auf Formel prüfen

Beitrag von Jörg »

Hallo Fachleute,

1. mein Plan ist es, eine Zelle (I18) per if-Anweisung auf eine bestimmte Formel zu prüfen.
Die Formel lautet : =neuein3 (Name)
2. Wie müßte die Variable deklariert werden?

Code: Alles auswählen

oSheet = thisComponent.Sheets(2)
   Preisneu = oSheet.getCellRangeByName("I18").????
Vielen Dank !
Zuletzt geändert von Jörg am Do, 02.09.2021 19:36, insgesamt 1-mal geändert.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Zelle auf Formel prüfen

Beitrag von Karolus »

Am besten holst du dir erstmal 'Mri-1.3.4.oxt' von hier und installierst das.
Hinterher selektierst du die gewünschte Zelle und gehst zu →Extras→Add-ons→Mri<Selection
In dem sich öffnenden Dialog scrollst du soweit runter bist du auf den Begriff FormulaLocal stösst…
Wenn du das dann öfter benutzt bist bald selber ein "Fachleut"
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Zelle auf Formel prüfen

Beitrag von Jörg »

Hallo Karolus,
danke für den Tip. Habe Mri installiert.
Bin jetzt erstmal soweit.

Code: Alles auswählen

 ------
 Dim Preisneu as string
  Preisneu = oSheet.getCellRangeByName("I18").string
   if Preisneu = "=neuein3" then
msgbox ....
end if
---------
Das Makro läuft jedoch (ohne Fehlermeldung) durch.
Die msgbox startet nicht obwohl die Formel in "I18" steht.
Wo ist mein Fehler ?
Gruß Jörg

Win 10 Pro AOO 4.1.15
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zelle auf Formel prüfen

Beitrag von Stephan »

Wie Karolus bereits schrieb, "FormulaLocal", also:

Code: Alles auswählen

Dim Preisneu as string
oSheet = thisComponent.Sheets(2)
Preisneu = oSheet.getCellRangeByName("I18").FormulaLocal
   if Preisneu = "=neuein3" then
msgbox "...."
end if
Du solltest aber nötigenfalls einmalig prüfen wie die Formel wirklich lautet, denn wenn Du in die Zelle die Formel "=neuein3(A1)" eingegeben hast und die Funktion neuneu3 existiert macht Calc aus dem Eintrag automatisch "=NEUNEU3(A1)" und das musst Du auch abfragen:

Code: Alles auswählen

if Preisneu = "=NEUNEU3(A1)" then


GRuß
Stephan
Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Zelle auf Formel prüfen

Beitrag von Jörg »

Hallo Stephan,
danke Dir für die Korrektur. So funktioniert es.
Die Formel ist

Code: Alles auswählen

=WENN(ISTNV(SVERWEIS($E$12;neuEinzel;VERGLEICH($F$18;neuPositEinzel;0);0));"";(SVERWEIS($E$12;neuEinzel;VERGLEICH($F$18;neuPositEinzel;0);0)))
Dürfte also keine Probleme geben.
Nochmals vielen Dank.

P.s.
Ist inzwischen das Problem mit den Hyperlinks in der Version 4.1.10 behoben ? Ich hatte ja auf deinen Rat hin ein Upgrade auf 4.1.9 gemacht.
https://de.openoffice.info/viewtopic.php?f=3&t=75482
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: [Gelöst]Zelle auf Formel prüfen

Beitrag von Karolus »

Hallo

Apropos Upgrade: mit Libreoffice könntest du zb. deine Formel von oben abkürzen auf

Code: Alles auswählen

=WENNNV(SVERWEIS($E$12;neuEinzel;VERGLEICH($F$18;neuPositEinzel;0);0);"")
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: [Gelöst]Zelle auf Formel prüfen

Beitrag von Stephan »

Apropos Upgrade:
LibreOffice ist OpenOffice weit voraus wenn es um Tabellenfunktions-Kompatibilität zu MS Excel geht, aber Kompatibilität scheint mir auch eine Überlegung wert.

Wenn LO glänzen wollte würde man nach Wegen suchen das 'Tabellenfunktionsrennen' mit MS Excel entbehrlich zu machen, z.B. indem man importierte, neuere Excel-Funktionen in ältere Tabellenfunktionen 'übersetzt'.

Was MS Excel seit Jahren tut ist jedenfalls nichts anderes als vergleichsweise den Duden durch ein "Satzbuch" ersetzen zu wollen, nur um den Leuten die 'Unbequemlichkeit' zu nehmen aus einzelnen Wörtern eigene Sätze bilden zu müssen.


Gruß
Stephan
Antworten