Formel (Feldinhalt) per Makro in eine Variable kopieren
Moderator: Moderatoren
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
mit folgender Funktion bekomme ich den Inhalt eines Feldes, aber nicht seine Formel..
msgbox ThisComponent.Sheets().getByName( "Daten_eingeben").getCellByPosition( 5, 21 ).getString()
bin für Hilfe dankbar!
msgbox ThisComponent.Sheets().getByName( "Daten_eingeben").getCellByPosition( 5, 21 ).getString()
bin für Hilfe dankbar!
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo
Was genau meinst du hier mit 'Feldinhalt' ? - Zellinhalt (Wert,Text oder Formel ) oder meinst du den Inhalt eines Formularfeldes.
Vielleicht beschreibst du nochmal genauer was "hinten rauskommen soll"
Evtl ist das auch eher ein Thema fürs Basic und Java - forum
Edit/
aha - die Formel bekommst du mit:
............getCellByPosition( 5, 21 ).formula() oder auch ..........formulalocal
edit ende/
Gruß Karo
Was genau meinst du hier mit 'Feldinhalt' ? - Zellinhalt (Wert,Text oder Formel ) oder meinst du den Inhalt eines Formularfeldes.
Vielleicht beschreibst du nochmal genauer was "hinten rauskommen soll"
Evtl ist das auch eher ein Thema fürs Basic und Java - forum
Edit/
aha - die Formel bekommst du mit:
............getCellByPosition( 5, 21 ).formula() oder auch ..........formulalocal
edit ende/
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
@Karo
super!!
Vielen Dank!! So scheint es zu klappen.
super!!

Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Wie kann ich eine komplexe Formel in ein Feld kopieren (via Makro)?
Konkret folgende...
=WENN(B25="";WENN(ODER(TEIL(B22;1;1)="A";TEIL(B22;1;1)="a";TEIL(B22;1;1)="P";TEIL(B22;1;1)="S");WENN(B18="";WENN(F33="";SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'file:///mnt/tausch/meldungen/ga_namen.ods'#$ga_namen.a2:B438;2;0))
einfach mittels setformula(..) gehts auch aufgrund der ' Zeichen nicht
Wie kann ich aus o.g. Text einen String erstellen? Mit den " Zeichen ist das ja auch ein Problem?
Konkret folgende...
=WENN(B25="";WENN(ODER(TEIL(B22;1;1)="A";TEIL(B22;1;1)="a";TEIL(B22;1;1)="P";TEIL(B22;1;1)="S");WENN(B18="";WENN(F33="";SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'file:///mnt/tausch/meldungen/ga_namen.ods'#$ga_namen.a2:B438;2;0))
einfach mittels setformula(..) gehts auch aufgrund der ' Zeichen nicht

Wie kann ich aus o.g. Text einen String erstellen? Mit den " Zeichen ist das ja auch ein Problem?
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo
die ganze Formel muss in " gestzt werden und die " innerhalb der Formel müssen mit entsprechend vielen weiteren " maskiert werden, ausserdem musst du bei der Übergabe deutsch lokalisierter Formeln '...formulalocal ' verwenden:
Ich würde an deiner Stelle darüber nachdenken solche Formelmonster zu vermeiden, und zumindest statt direkter 'file:///...' verknüpfungen mit DDE arbeiten.
Gruß Karo
die ganze Formel muss in " gestzt werden und die " innerhalb der Formel müssen mit entsprechend vielen weiteren " maskiert werden, ausserdem musst du bei der Übergabe deutsch lokalisierter Formeln '...formulalocal ' verwenden:
Code: Alles auswählen
...formulalocal = "=WENN(B25="""";WENN(ODER(TEIL(B22;1;1)=""A"";TEIL(B22;1;1)=""a"";TEIL(B22;1;1)=""P"";TEIL(B22;1;1)=""S"");WENN(B18="""";WENN(F33="""";SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'file:///mnt/tausch/meldungen/ga_namen.ods'#$ga_namen.a2:B438;2;0))"
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Vielen Dank.
Ich versuche hier nur das Programm von einem anderen zu verändern. Wenn ich den Pfad in einer Variable habe, kann ich den dann einfach einfügen? quasi ".."&Pfad&"..."?
Kannst du mir das mit der DDE kurz erklären? Danke.
Ich versuche hier nur das Programm von einem anderen zu verändern. Wenn ich den Pfad in einer Variable habe, kann ich den dann einfach einfügen? quasi ".."&Pfad&"..."?
Kannst du mir das mit der DDE kurz erklären? Danke.
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo
Es gibt einen Formelassistenten indem darftst du ruhig mal nach "DDE" suchen -
etwa so:
DDE("soffice";"T:\Meldungen\PLZ_GA.ods";"#$PlzGA.A2:B40856";0)...........statt file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856
Gruß Karo
Es gibt einen Formelassistenten indem darftst du ruhig mal nach "DDE" suchen -
etwa so:
DDE("soffice";"T:\Meldungen\PLZ_GA.ods";"#$PlzGA.A2:B40856";0)...........statt file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856
ja!....quasi ".."&Pfad&"..."?
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Entschuldige 
noch eine letzte Frage. Wenn ich die Variable pfad = "file://T:/Meldungen/" einfüge macht er mir in der Formel Kleinbuchstaben daraus z.B. ///t:/meldungen/ und somit funktioniert die Formel nicht mehr. Gibt es eine Möglichkeit die Groß-/Kleinschreibung zu erhalten??
"=WENN(B25="""";WENN(ODER(TEIL(B22;1;1)=""A"";TEIL(B22;1;1)=""a"";TEIL(B22;1;1)=""P"";TEIL(B22;1;1)=""S"");WENN(B18="""";WENN(F33="""";SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'"+Pfad+"GA_Namen.ods'#$ga_namen.a2:B438;2;0))"
EDIT: Wenn ich mir den obigen Text in einer msgbox ausgeben lassen funktioniert die Gro-/Kleinschreibung nur im Feld sind es Kleinbuchstaben

noch eine letzte Frage. Wenn ich die Variable pfad = "file://T:/Meldungen/" einfüge macht er mir in der Formel Kleinbuchstaben daraus z.B. ///t:/meldungen/ und somit funktioniert die Formel nicht mehr. Gibt es eine Möglichkeit die Groß-/Kleinschreibung zu erhalten??
"=WENN(B25="""";WENN(ODER(TEIL(B22;1;1)=""A"";TEIL(B22;1;1)=""a"";TEIL(B22;1;1)=""P"";TEIL(B22;1;1)=""S"");WENN(B18="""";WENN(F33="""";SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'"+Pfad+"GA_Namen.ods'#$ga_namen.a2:B438;2;0))"
EDIT: Wenn ich mir den obigen Text in einer msgbox ausgeben lassen funktioniert die Gro-/Kleinschreibung nur im Feld sind es Kleinbuchstaben
Zuletzt geändert von Dengue am Di, 15.12.2009 17:00, insgesamt 1-mal geändert.
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo
Ich hab doch vorhin geschrieben wie du die "anführungszeichen innerhalb des Formelstrings behandeln musst - versuchs doch mal wenigstens das selbst umzusetzen!
Gruß Karo
Ich hab doch vorhin geschrieben wie du die "anführungszeichen innerhalb des Formelstrings behandeln musst - versuchs doch mal wenigstens das selbst umzusetzen!
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
sorry aber was hat das mit den " zu tun ? Du hast doch auch geschrieben, dass es mit "..."+Pfad+"..." geht!? nur werden es halt kleinbuchstaben...
Wie gesagt in einer Messagebox habe ich de Groß- und Kleinschreibung in dem entsprechenden Feld aber nur Kleinbuchstaben? Das verstehe ich echt nicht. Ersetze ich die Variable Pfad durch den entsprechenden //... dann habe ich wieder Großbuchstaben
Code: Alles auswählen
hstr = "=WENN(B25="""";WENN(ODER(TEIL(B22;1;1)=""A"";TEIL(B22;1;1)=""a"";TEIL(B22;1;1)=""P"";TEIL(B22;1;1)=""S"");WENN(B18="""";WENN(F33="""";SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'"+Pfad+"GA_Namen.ods'#$ga_namen.a2:B438;2;0))"
ThisComponent.Sheets().getByName( "Daten_eingeben").getCellByPosition( 1, 37 ).formulalocal = "=WENN(B25="""";WENN(ODER(TEIL(B22;1;1)=""A"";TEIL(B22;1;1)=""a"";TEIL(B22;1;1)=""P"";TEIL(B22;1;1)=""S"");WENN(B18="""";WENN(F33="""";SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0);SVERWEIS(F33;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B18;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(F25;'"+Pfad+"PLZ_GA.ods'#$PlzGA.A2:B40856;2;0));SVERWEIS(B25;'"+Pfad+"GA_Namen.ods'#$ga_namen.a2:B438;2;0))"
msgbox hstr
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo
Wie sieht der Inhalt der der Variablen Pfad aus ?
sorry , aber ich kann das in dem Umfang nicht nachstellen um dir konkret zu sagen was richtig oder falsch ist. Analysiere mal die übergebene Formel im Formelassistenten da wird dann evtl.klar was du noch ändern musst.
Oder bau das erstmal mit einer kurzen Bsplformel zusammen.
Gruß Karo
Wie sieht der Inhalt der der Variablen Pfad aus ?
sorry , aber ich kann das in dem Umfang nicht nachstellen um dir konkret zu sagen was richtig oder falsch ist. Analysiere mal die übergebene Formel im Formelassistenten da wird dann evtl.klar was du noch ändern musst.
Oder bau das erstmal mit einer kurzen Bsplformel zusammen.
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Formel (Feldinhalt) per Makro in eine Variable kopieren
Hallo Leute,
eine unwissende Frage.
Wenn im Makro die Variable "Pfad" deklariert ist, wird dann in der Formel die Variable mit dem Pluszeichen + eingesetzt, oder so wie in einer Zelle mit dem Kaufmansund &?
Aus
kann man in einer Tabellenzelle nicht so einfach das hier
machen.
Wobei Pfad jetzt ein zugeordneter Name (Strg+F3) für T:/Meldungen/ ist. Wenn mann das Variable gestallten will, dann würde das jetzt in ungefähr so aussehen.
Und ich denke mir mal, dass was in einer Tabellenzelle gilt, dass gilt dann auch im Makro. Zumindest in diesem speziellen Fall.
Auch ich würde zu dem Einsatz von =DDE() raten, denn damit dürfte das Thema "Variabler Pfad" viel leichter zu realisieren sein.
Gruß
balu
eine unwissende Frage.
Wenn im Makro die Variable "Pfad" deklariert ist, wird dann in der Formel die Variable mit dem Pluszeichen + eingesetzt, oder so wie in einer Zelle mit dem Kaufmansund &?
Vielleicht liegt es wohl daran, dass man den =file://..Pfad nicht so einfach zerstückeln, variabel machen kann. Und folgedessen funktioniert dann die Formel auch nicht.Dengue hat geschrieben: Ersetze ich die Variable Pfad durch den entsprechenden //... dann habe ich wieder Großbuchstaben
Aus
Code: Alles auswählen
='file:///T:/Meldungen/PLZ_GA.ods'#$PlzGA.A2:B40856
Code: Alles auswählen
='"Pfad"PLZ_GA.ods'#$PlzGA.A2:B40856
Wobei Pfad jetzt ein zugeordneter Name (Strg+F3) für T:/Meldungen/ ist. Wenn mann das Variable gestallten will, dann würde das jetzt in ungefähr so aussehen.
Code: Alles auswählen
=INDIREKT(VERKETTEN("'file:///";Pfad;"'#$";"PlzGA.A2:B40856"))
Auch ich würde zu dem Einsatz von =DDE() raten, denn damit dürfte das Thema "Variabler Pfad" viel leichter zu realisieren sein.
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
wehr rächtschraipfähler findet khan si behalden
