Hallo allerseits!
Ich habe die armen Menschen im Calc Forum eben ziemlich (unnötig) maltretiert. Letztendlich konnte ich in meiner Calc-Datei zwei Probleme mit Makros isolieren, die ich lösen muss. Leider habe ich kaum Erfahrung mit Makros. Ich verstehe sie jetzt, aber ändern ist eine andere Sache.
Das erste Problem ist das automatische Entschützen und Schützen von Tabellen:
Code: Alles auswählen
ThisComponent.isUndoEnabled = False
oCleaningDestinationSheet.unprotect("")
oDestinationCellRange.setDataArray(oSourceCellRange.getDataArray())
oCleaningDestinationSheet.protect("")
ThisComponent.isUndoEnabled = True
Das protect ist das Problem. Wenn die Tabelle zuvor manuell "entschützt" wurde (um etwas zu ändern) schlägt obiges Skript zu, und schaltet den Schutz ständig wieder ein. Zum Irre werden. Ich würde das gerne so ändern, dass das protect() nur aufgerufen wird, wenn vor dem unprotect() die Tabelle tatsächlich geschützt war.
Das zweite betrifft Zugriffe auf Spalten. Da gibt eines Anweisung der folgenden (oder ähnlicher) Art:
Code: Alles auswählen
oDestinationCellRange = oCleaningDestinationSheet.getCellRangeByName("AO2:AP100")
Wenn neue Spalten eingefügt werden, gerät alles durcheinander, weil die Spaltennummer ("AO" und "AP") sich verschieben. Jede Spalte hat in der ersten Zeile aber eine Überschrift die eigentlich nie geändert wird (da sie in Serienbriefen benutzt wird). Ist es möglich statt der Spaltennummer die Überschrift in der ersten Zeile jeder Spalte zu verwenden? Wie?
Moderation,4: Betreff konkretisiert