Hallo Pit,
ich sehe aber hier keinen klaren Zusammenhang. Ich füge Elemente (geometrische Figuren aller Art) auf die Drawpage ein - und die sind (meines Wissens) keiner Zelle zugeordnet.
Jaeien!
Einerseits hast Du recht, aber anderseits auch wiederum nicht.
Ein Grafisches Element ist wohl nicht direkt einer ganz bestimmten Zelle
zugeordnet, aber sie liegt auf dieser Zelle nun mal halt oben drauf.
Du hast es aber auch nicht wirklich ausprobiert, weil dir das wohl irgendwie unlogisch vorkommt. Und deshalb habe ich mal eben eine ganz simple Testdatei angehängt. In der befindet sich im Tabellenblatt *Start* ein Textfeld, welches ja auch ein Grafisches Element ist, auf dem/innerhalb des Zellbereich "G8:I11". Das Textfeld ist von der Größe her kleiner als der Zellbereich.
Und ferner ist dort auch noch ein CommandButton mit dem Text "Textfeld löschen" vorhanden, welches das folgende Makro ausführt.
Code: Alles auswählen
sub GrafikenLoeschen
dim oDocGL as object
oDocGL = thisComponent
oDocGL.Sheets(0).getCellRangeByName("G8:I11").clearContents(128)
end sub
Wenn Du also auf den Button drückst, dann wird das Textfeld im, oder besser gesagt
auf dem angegebenen Zellbereich gelöscht.
Einfach mal ausprobieren!
Du kannst ja auch den Zellbereich auf das hier ändern: getCellRangeByName("A1:I13"), und schauen was passiert.
Aber Achtung!
Wenn gelöscht, dann ist es gelöscht. Ich habe nix eingebaut um das gelöschte Textfeld per Button wieder neu zu zeichnen.
Mittels "Rückgängig" kann das gelöschte Textfeld aber wieder zurückgeholt werden.
Ja, ich kenne noch so im ganz groben eine ältere Verrsion von deinem Rechentrainer, aber dein aktuelles Problem ist da ja noch nicht drin.
... doch, das Problem hatte ich früher schon. Da war es aber nicht so klar nachvollziehbar. Je nach Betriebssystem, Computerinstallation oder Openoffice bzw. LibreOffice Version die meine Schüler nutzten kam es immer wieder zu Abstürzen.
Ich weiss es wirklich nicht ob es mittlerweile eine andere/bessere/einfachere oder was auch immer Methode gibt um Grafische Elemente zu löschen. Ich habe aber das Makro unter OO.o 3.2.1 erstellt und unter LO 5.1.5.2 so wie unter AOO 4.1.3 getestet. Und es funktioniert überall so wie es soll.
Wenn ich die entsprechenden Codes in eine leere Datei kopiere funktionieren sie natürlich wunderbar - erst in der Gesamtversion klappt es nicht.
Ja, das dein Code verdammt lang ist, das weiss ich noch. Aber wenn ich das lese, dann muss da aber was sehr im Argen liegen. Ich zumindest würde da auf ein Problem mit den vergebenen Variablen tippen, entweder falsch oder gar nicht deklariert, oder aber eine Doppelbelgegung, mal wird sie so deklariert und defeniert, und dann wieder anders.
Ich weiss ja nicht in wie weit Du das überarbeitet hast, aber ich habe hier ja noch eine Version von April 2012, in der Du im Modul *AnfangEnde* die Variablen wie folgt deklariert hattest, beispielweise.
Code: Alles auswählen
dim hoch, probe, abbr, TestErst, flag as boolean
dim Beginn, Ende, Zwischen, ZeitB, LstgB, LstgG, ZeitL, LstgS, LstgL, LstgH, DatumL as date
dim i, m, n, z, Zeitraum as integer
Und von den gezeigten sind nur insgesamt 3 Variablen richtig deklariert, alle anderen sind Falsch. Findest Du die richtigen?
Und auch wenn es noch so bequem ist Variablen einfach automatisch auf Variant setzen zu lassen, so wie zu sehen, so kann sich das früher oder Später unangenehm bemerkbar machen. Jede Variable muss absolut eindeutig deklariert werden, da führt kein Weg drunherum, grad in deinem Mamut-Code (nicht negativ gemeint).
Das ist bei mir immer die erste Anlaufstelle, wenn es irgendwo hakt: Sind alle Variablen richtig deklariert?
So, und nun gehts ab ins Bett.
gruß
balu