von WN » So, 19.11.2006 21:16
Hallo Karo,
ich habe gerade gesehen, dass Du mir gestern noch geantwortet hast.
Zu Deiner Gegenfrage:
Das Makro soll Werte der aktuellen Zelle umrechnen, die vorher eingegeben wurden (das Makro wird entweder durch eine Tastenkombination ausgelöst bzw. mit einem Symbol verbunden). Um die Eingabe nicht mit der Enter-Taste bestätigen und dann wieder in die Zelle zurückspringen zu müssen, soll die Berechnung auch dann funktionieren, wenn sich der Wert noch in der Eingabe befindet. Nur aus diesem Grund habe ich die Konstruktion mit dem Sprung in die Zelle A1 (hätte mit anderen Zellen auch funktioniert) und wieder zurück benötigt.
Der Code lautet jetzt wie folgt:
odoc = thisComponent
Controller = odoc.currentcontroller
mysheet=odoc.currentcontroller.activesheet
dim i as double
Zelleaktuell=odoc.getCurrentSelection().getCellAddress()
oRow=Zelleaktuell.Row
oColumn=Zelleaktuell.column
oZiel1 = mySheet.getCellByPosition(0,0)
Controller.select(oZiel1)
oZiel2= mySheet.getCellByPosition(ocolumn,orow)
Controller.select(oZiel2)
oziel2 = odoc.getCurrentSelection().value
i = oziel2
i = i/1.95583
oziel2 = odoc.getCurrentSelection()
oziel2.value = i
oziel2.numberformat = 106
Bis jetzt konnte ich noch keine Fehler finden. Bestimmt hätte man das Ganze auch einfacher programmieren können. Ich bin aber schon ganz froh, dass ich mit Eurer Hilfe soweit gekommen bin.
Jetzt hätte ich aber noch eine Frage:
Wo finde ich Literatur darüber, welche Objekte erstellt werden können (z.B. der CurrentController), was mit diesen angestellt werden kann bzw. wie man Zellen anspricht ? Ich habe zwar ein Buch über die OpenOffice-Programmierung. Dieses hat mir aber in dem Fall nicht weitergeholfen.
Ich habe auch schon versucht, den Zellsprung aufzuzeichnen und habe denselben Code erhalten, den Du gestern gepostet hast. Aber hier muss ich zugeben, dass ich diesen nicht verstanden habe. Da waren mir zu viele "Unbekannte" enthalten.
Viele Grüße
WN
Hallo Karo,
ich habe gerade gesehen, dass Du mir gestern noch geantwortet hast.
Zu Deiner Gegenfrage:
Das Makro soll Werte der aktuellen Zelle umrechnen, die vorher eingegeben wurden (das Makro wird entweder durch eine Tastenkombination ausgelöst bzw. mit einem Symbol verbunden). Um die Eingabe nicht mit der Enter-Taste bestätigen und dann wieder in die Zelle zurückspringen zu müssen, soll die Berechnung auch dann funktionieren, wenn sich der Wert noch in der Eingabe befindet. Nur aus diesem Grund habe ich die Konstruktion mit dem Sprung in die Zelle A1 (hätte mit anderen Zellen auch funktioniert) und wieder zurück benötigt.
Der Code lautet jetzt wie folgt:
odoc = thisComponent
Controller = odoc.currentcontroller
mysheet=odoc.currentcontroller.activesheet
dim i as double
Zelleaktuell=odoc.getCurrentSelection().getCellAddress()
oRow=Zelleaktuell.Row
oColumn=Zelleaktuell.column
oZiel1 = mySheet.getCellByPosition(0,0)
Controller.select(oZiel1)
oZiel2= mySheet.getCellByPosition(ocolumn,orow)
Controller.select(oZiel2)
oziel2 = odoc.getCurrentSelection().value
i = oziel2
i = i/1.95583
oziel2 = odoc.getCurrentSelection()
oziel2.value = i
oziel2.numberformat = 106
Bis jetzt konnte ich noch keine Fehler finden. Bestimmt hätte man das Ganze auch einfacher programmieren können. Ich bin aber schon ganz froh, dass ich mit Eurer Hilfe soweit gekommen bin.
Jetzt hätte ich aber noch eine Frage:
Wo finde ich Literatur darüber, welche Objekte erstellt werden können (z.B. der CurrentController), was mit diesen angestellt werden kann bzw. wie man Zellen anspricht ? Ich habe zwar ein Buch über die OpenOffice-Programmierung. Dieses hat mir aber in dem Fall nicht weitergeholfen.
Ich habe auch schon versucht, den Zellsprung aufzuzeichnen und habe denselben Code erhalten, den Du gestern gepostet hast. Aber hier muss ich zugeben, dass ich diesen nicht verstanden habe. Da waren mir zu viele "Unbekannte" enthalten.
Viele Grüße
WN