Excel Makros - kann man diese in Open Office übernehmen ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Excel Makros - kann man diese in Open Office übernehmen ?

Re: Excel Makros - kann man diese in Open Office übernehmen ?

von Charly » Di, 07.04.2009 07:59

Hallo Klaus!
Klaus.w. hat geschrieben: Cells(8, 3) = Cells(8, 3) + Cells(8, 6)
Cells(8, 6).ClearContents
An diesem Beispiel erkennt man am besten den Unterschied. Zellenpositionen werden in VBA in der Reihenfolge Zeile,Spalte dargestellt, in Starbasic umgekehrt. Zudem muss in Starbasic eins abgezogen werden, da hier Spalten und Zeilen ab Null gezählt werden.

Bei clearContents muss in Form einer Zahl angegeben werden, was zu löschen ist. Dabei steht 4 für Zeichen, 1 für Zahlen, 2 für Datum und Zeit, 16 für Formeln, 8 für Notizen und 32 für Formate. Die Ziffern können zusammengezählt werden, wenn verschieden Sachen gelöscht werden sollen, z.B. 4+1 für Zeichen und Zahlen.

Man muss beim Abfragen der Zelleninhalte auch zwischen Zahlen und Zeichen unterscheiden. Wenn man rechnen will nimmt man value sonst string. In deinem Beispiel gehe ich von Zahlen aus.

Und hier ist der Code allerdings ungetestet:

Code: Alles auswählen

Sub Test()
Dok = ThisComponent
Controller = Dok.getCurrentController()
Blatt = Controller.ActiveSheet
Zelle1 = Blatt.getCellByPosition(2,7)
Zelle2 = Blatt.getCellByPosition(5,7)
Zelle1.value = Zelle1.value + Zelle2.value
Zelle2.clearContents(1)
end Sub
Im übrigen solltest du mal ins Unterforum "Java und Basic" schauen. Dort ist dieses Thema etwas besser aufgehoben. Es gibt dort Links auf Informationen und viele Programmierbeispiele.

Gruß
Charly

Re: Excel Makros - kann man diese in Open Office übernehmen ?

von Karolus » Di, 07.04.2009 07:54

Hallo
Cells(8, 3) = Cells(8, 3) + Cells(8, 6)
Cells(8, 6).ClearContents
Es macht keinen Sinn das sich genau dieser Satz unzählige Male wiederholt. Gibts da keine Zählvariable für Zeilen- und/oder Spaltenindex?
Das ganze könnte in OOobasic vielleicht so aussehen:

Code: Alles auswählen

sub tu_was
odoc = ThisComponent 'das aktive Dokument
osheet = odoc.sheets(0) 'das erste Tabellenblatt über den Index -
'osheet = odoc.sheets().getbyName("Tabelle1") '-oder den Namen
'for i = x to z  'evtl. eine Zählschleife für den Zeilenindex ?  für x kleinsten Zeilenindex, für z den grössten eintragen
  osheet.getcellbyposition(3, i).value =_
  osheet.getcellbyposition(3, i).value + osheet.getcellbyposition(6, i).value
  osheet.getcellbyposition(3, i).clearcontents(255) ' ? siehe [1]
'next i 'evtl nächste Schleife
end sub
[1]
[2]
[3]

Gruß Karo

Re: Excel Makros - kann man diese in Open Office übernehmen ?

von Charly » Mo, 06.04.2009 10:13

Hallo Klaus!

Leider ist die Makrosprache in Excel (VBA) nur teilweise kompatibel mit der Makrosprache von Calc (Starbasic). Insbesondere der Zugriff auf die Objekte ist anders.
Dir bleibt wohl eine Neuprogrammierung wohl nicht erspart.


Gruß
Charly

Nach oben