Macro kopiert Formel fehlerhaft
Verfasst: Do, 19.04.2012 15:09
Hallo,
ich habe folgendes Macro geschrieben:
Es handelt sich um eine Aufstellung, welche jedes Quartal zum Ultimo (also 30.03., 30.06., 30.09. und 30.12.) erstellt wird.
Zuerst soll bei den Blättern 1-4 und 6-7 in Spalte H eine neue Spalte (bei den anderen Blätter an anderer Stelle) eingefügt werden.
Die Daten des Vor-Quartals, welche in Spalte D stehen, sollen dann in Spalte H kopiert werden.
Das klappt soweit auch sehr gut, mit einer Ausnahme:
Im Arbeitsblatt 0 ("Übersicht")ist das aktuelle Quartal in der Spalte B hinterlegt.
Über den separaten Teil des Macros wird hier in Spalte F (also 4 Spalten nach rechts) eine Spalte eingefügt und die Daten aus Spalte B werden nach F kopiert.
In der Zelle B3 (bzw. F3 nach kopieren) steht immer der aktuelle Stichtag.
Diese Zelle ist auch in den anderen Blättern in den Zellen D3 (bzw. H3 nach kopieren) verformelt über +Übersicht.B$3.
Nachdem sowohl im Blatt "Übersicht" als auch in den weiteren Blättern die Daten des Vor-Quartals um 4 Spalten nach rechts kopiert werden, müsste doch eigentlich die Formel weiter funktionieren, oder?
Tatsächlich jedoch lautet die Formel in den Blättern 1-4 und 6-7 nach kopieren "+Übersicht.G$3", so dass der falsche Stichtag übernommen wird.
ich habe folgendes Macro geschrieben:
Code: Alles auswählen
oDoc=ThisComponent
For i = 1 to 4
oSheet=oDoc.Sheets(i)
myColumn=oSheet.getColumns
myColumn.insertByIndex(7,1)
oQuellRange = oSheet.GetCellRangeByPosition(3,0,3,100)
oQuellRangeAdresse = oQuellRange.getRangeAddress
oZiel = oSheet.getCellByPosition(7,0)
oZielCellAdresse = oZiel.getCellAddress
oSheet.copyRange(oZielCellAdresse,oQuellRangeAdresse)
Next i
For i = 6 to 7
oSheet=oDoc.Sheets(i)
myColumn=oSheet.getColumns
myColumn.insertByIndex(7,1)
oQuellRange = oSheet.GetCellRangeByPosition(3,0,3,100)
oQuellRangeAdresse = oQuellRange.getRangeAddress
oZiel = oSheet.getCellByPosition(7,0)
oZielCellAdresse = oZiel.getCellAddress
oSheet.copyRange(oZielCellAdresse,oQuellRangeAdresse)
Next i
oSheet=oDoc.Sheets(0)
myColumn=oSheet.getColumns
myColumn.insertByIndex(5,1)
oQuellRange = oSheet.GetCellRangeByPosition(1,0,1,100)
oQuellRangeAdresse = oQuellRange.getRangeAddress
oZiel = oSheet.getCellByPosition(5,0)
oZielCellAdresse = oZiel.getCellAddress
oSheet.copyRange(oZielCellAdresse,oQuellRangeAdresse)
oSheet=oDoc.Sheets(5)
myColumn=oSheet.getColumns
myColumn.insertByIndex(7,1)
oQuellRange = oSheet.GetCellRangeByPosition(6,31,6,100)
oQuellRangeAdresse = oQuellRange.getRangeAddress
oZiel = oSheet.getCellByPosition(7,31)
oZielCellAdresse = oZiel.getCellAddress
oSheet.copyRange(oZielCellAdresse,oQuellRangeAdresse)
End Sub
Zuerst soll bei den Blättern 1-4 und 6-7 in Spalte H eine neue Spalte (bei den anderen Blätter an anderer Stelle) eingefügt werden.
Die Daten des Vor-Quartals, welche in Spalte D stehen, sollen dann in Spalte H kopiert werden.
Das klappt soweit auch sehr gut, mit einer Ausnahme:
Im Arbeitsblatt 0 ("Übersicht")ist das aktuelle Quartal in der Spalte B hinterlegt.
Über den separaten Teil des Macros wird hier in Spalte F (also 4 Spalten nach rechts) eine Spalte eingefügt und die Daten aus Spalte B werden nach F kopiert.
In der Zelle B3 (bzw. F3 nach kopieren) steht immer der aktuelle Stichtag.
Diese Zelle ist auch in den anderen Blättern in den Zellen D3 (bzw. H3 nach kopieren) verformelt über +Übersicht.B$3.
Nachdem sowohl im Blatt "Übersicht" als auch in den weiteren Blättern die Daten des Vor-Quartals um 4 Spalten nach rechts kopiert werden, müsste doch eigentlich die Formel weiter funktionieren, oder?
Tatsächlich jedoch lautet die Formel in den Blättern 1-4 und 6-7 nach kopieren "+Übersicht.G$3", so dass der falsche Stichtag übernommen wird.