zelleninhalt bei makro verwenden
Moderator: Moderatoren
zelleninhalt bei makro verwenden
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
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
Re: zelleninhalt bei makro verwenden
vielen dank werd ich gleich mal testen 
mfg
Soge

mfg
Soge
Re: zelleninhalt bei makro verwenden
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
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
Re: zelleninhalt bei makro verwenden
Hallo
Normalerweise sollte a(0) den Tabllennamen liefern und a(1) die Zelladresse...
Gruß Karo
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)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: zelleninhalt bei makro verwenden
gleiches problem bei a(0)
daran lags also nicht
mfg
daran lags also nicht
mfg
Re: zelleninhalt bei makro verwenden
kann mir sonst irgendwer helfen bin schon fast am verzweifeln
würde mich freuen ^^
mfg
würde mich freuen ^^
mfg
Re: zelleninhalt bei makro verwenden
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
an oder versuche mal folgenden ganzen Code:
Viel Erfolg.
Jürgen
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
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
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: zelleninhalt bei makro verwenden
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
BASIC-Laufzeitfehler
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementExpection
Message: .
mfg
Soge
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
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementExpection
Message: .
mfg
Soge
Re: zelleninhalt bei makro verwenden
Hi,
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
Dann wird der Name für die Tabelle nicht richtig übergeben.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
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: zelleninhalt bei makro verwenden
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
muss noch ein fehler sein. wenn ich z.b
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
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())
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())
das scheint mir nun das leztzte problem zu sein ^^
mfg
Soge
- Dateianhänge
-
- bsp.ods
- (12.87 KiB) 267-mal heruntergeladen
Re: zelleninhalt bei makro verwenden
Hallo Soge,
genau so habe ich mir das gedacht.
Das kann so nicht funktionieren weil Du eine falsche Angabe gemacht hast:
Dann kann die Tabelle nicht gefunden werden weil es eben keine Tabelle "$alpha.$B$3" gibt.
Zuerst muss Du noch das Dollarzeichen eliminieren, dann funktioniert auch
Jürgen
genau so habe ich mir das gedacht.

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

Zuerst muss Du noch das Dollarzeichen eliminieren, dann funktioniert auch
Code: Alles auswählen
blatt2=ThisComponent.sheets.getbyName(a(1))
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: zelleninhalt bei makro verwenden
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
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
Re: zelleninhalt bei makro verwenden
hmmm habs zwar wegbekommen
gibt auch keinen fehler mehr aus aber
der wechselt die tabelle nicht
mfg
Soge
gibt auch keinen fehler mehr aus aber
der wechselt die tabelle nicht
mfg
Soge
Re: zelleninhalt bei makro verwenden
ok nach ein wenig tüfteln hats funktioniert
Danke an alle die gehlofen haben
mfg
Soge
thema kann geschlossen werden
Danke an alle die gehlofen haben
mfg
Soge
thema kann geschlossen werden