zelleninhalt bei makro verwenden

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

Moderator: Moderatoren

Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

zelleninhalt bei makro verwenden

Beitrag von Soge »

Hi,

ich brauch ein makro mit dem ich eine zelle auslesen kann in der eine adresse einer anderen zelle steht und auf die zelle zugreif die die die adresse angibt damit ich dort etwas reinspeichern oder auslesen kann.

kleines bsp:
Tabelle1 A1 inhalt: Tabelle2.$C$5
jetzt brauch ich ein makro dass auf Tabelle2.$C$5 zugreift, aber der inhalt in A1 ändert sich, also später ist es vielleicht "Tabelle2.$B$3", denn die adresse wird über mehrere ausschlussverfahren geschrieben.

hoffe es war verständlich geschrieben ^^

danke schonmal im vorraus

mfg
Soge
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

vielen dank werd ich gleich mal testen :)

mfg
Soge
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

hi ich nochmal ^^

also irgendwas stimmt noch nicht ganz bei der zeile
blatt2=ThisComponent.sheets.getbyName(a(1)) 'neue Tabelle anwählen
bekomm ich die fehlermeldung:

Unzulässiger Wert oder Datentyp
Index außerhalb des definierten Bereichs

....was sagt mir das jetzt?

mfg
Soge
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: zelleninhalt bei makro verwenden

Beitrag von Karolus »

Hallo
Normalerweise sollte a(0) den Tabllennamen liefern und a(1) die Zelladresse...

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

gleiches problem bei a(0)
daran lags also nicht

mfg
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

kann mir sonst irgendwer helfen bin schon fast am verzweifeln

würde mich freuen ^^

mfg
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: zelleninhalt bei makro verwenden

Beitrag von turtle47 »

Hi Soge,

kann es sein, dass sich vor oder hinter "Tabelle2.$C$5" vielleicht noch ein Leerzeichen ist, also " Tabelle2.$C$5 "?
Dann wird die Tabellenangabe " Tabelle2" oder die Zellangabe "falsch" ausgeben und somit nicht erkannt.

Schau Dir das Ganze mal mittels

Code: Alles auswählen

sub zelle
Dim aResult as variant
blatt=ThisComponent.sheets.getbyName("Tabelle1") 'erste Tabelle
azelle=blatt.getcellrangebyname("A1") 'Zelle aus der Du auslesen willst
ziel=azelle.string 'Inhalt der Zelle
a()=split(ziel,".") 'Zelle aufteilen in Tabelle und Zelle
msgbox """" & (a(0)) & """"
msgbox """" & (a(1)) & """"
End Sub
an oder versuche mal folgenden ganzen Code:

Code: Alles auswählen

sub zelle
Dim aResult as variant
blatt=ThisComponent.sheets.getbyName("Tabelle1") 'erste Tabelle
azelle=blatt.getcellrangebyname("A1") 'Zelle aus der Du auslesen willst
ziel=azelle.string 'Inhalt der Zelle
a()=split(ziel,".") 'Zelle aufteilen in Tabelle und Zelle
blatt2=ThisComponent.sheets.getbyName(LTRIM(a(0))) 'neue Tabelle anwählen
zZelle=blatt2.getCellRangeByName(RTRIM(a(1))) 'neue Zelle anwählen
zZelle.formula="vollkommen egal was" 'Inhalt setzen
end sub
Viel Erfolg.

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
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

hi

also das mit der msgbox hat funktioniert und es wird auch das richtige angezeigt ohne irgenwelchen leerzeichen.

bei dem unteren hab ich jetzt schon wieder einen neuen fehler bei

Code: Alles auswählen

blatt2=ThisComponent.sheets.getbyName(LTRIM(a(0))) 'neue Tabelle anwählen
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementExpection
Message: .

mfg
Soge
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: zelleninhalt bei makro verwenden

Beitrag von turtle47 »

Hi,
Soge hat geschrieben:bei dem unteren hab ich jetzt schon wieder einen neuen fehler bei

Code: Alles auswählen
blatt2=ThisComponent.sheets.getbyName(LTRIM(a(0))) 'neue Tabelle anwählen
Dann wird der Name für die Tabelle nicht richtig übergeben.

Am besten ladest Du eine Beispieldatei hier mal hoch, damit man sich das mal anschauen kann was da nicht funktioniert.
Bei mir ist der Code einwandfrei durchgelaufen.

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
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

ok also ich hab jetzt schon ein wenig rumgebalstelt weil das oben genannte nicht funktioniert hat
nun häng ich noch am tabellenwechsel fest

makro ist im bsp eingebettet.... aber an der stelle

Code: Alles auswählen

dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value= bziel
'msgbox """" & args3(0).Value & """"

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
muss noch ein fehler sein. wenn ich z.b

Code: Alles auswählen

dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value= 5
'msgbox """" & args3(0).Value & """"

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
schreib funktioniert es. bziel ist der zelleninhalt von einer zelle die mir die tabellennummer liefert.
das scheint mir nun das leztzte problem zu sein ^^

mfg
Soge
Dateianhänge
bsp.ods
(12.87 KiB) 268-mal heruntergeladen
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: zelleninhalt bei makro verwenden

Beitrag von turtle47 »

Hallo Soge,

genau so habe ich mir das gedacht. :?

Das kann so nicht funktionieren weil Du eine falsche Angabe gemacht hast:
Soge hat geschrieben:kleines bsp:
Tabelle1 A1 inhalt: Tabelle2.$C$5
Dort steht aber: $Tabelle2.$C$5, respektive bei Deiner Datei "$alpha.$B$3" und das ist eben das Entscheidende.
Dann kann die Tabelle nicht gefunden werden weil es eben keine Tabelle "$alpha.$B$3" gibt. 8)
Zuerst muss Du noch das Dollarzeichen eliminieren, dann funktioniert auch

Code: Alles auswählen

blatt2=ThisComponent.sheets.getbyName(a(1))
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
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

ok

und wie genau stell ich des an?
kann ich da einfach eine if schleife nehmen?
oder ein case switch verfahren wie bei c++?


mfg
Soge
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

hmmm habs zwar wegbekommen
gibt auch keinen fehler mehr aus aber

der wechselt die tabelle nicht

mfg
Soge
Soge
**
Beiträge: 27
Registriert: Di, 25.08.2009 20:22

Re: zelleninhalt bei makro verwenden

Beitrag von Soge »

ok nach ein wenig tüfteln hats funktioniert

Danke an alle die gehlofen haben


mfg
Soge

thema kann geschlossen werden
Antworten