von F3K Total » Sa, 23.01.2016 21:52
Hallo Mikele, Chapeau!
Habe, das Makro, an dem ich gearbeitet habe gerade fertig, geht auch, siehe Anlage.
Code: Alles auswählen
Sub Transpose
aVector = Array(14,15,3,2,6,4,1)
oSheet = ThisComponent.Sheets.Tabelle1
oCursor = oSheet.createCursor
oCursor.gotoEndofUsedarea(false)
nEndrow = oCursor.Rangeaddress.EndRow
oSourceRange = oSheet.getcellRangebyPosition(1,0,3,nEndRow)
adata = oSourceRange.getdataarray
nBound = adata(uBound(adata))(2)- adata(0)(2)
oTargetRange = oSheet.getcellrangebyPosition(6,1,12,nBound+1)
aNewData = oTargetRange.Getdataarray
nCounter = 0
aRow = aNewData(nCounter)
i_old = 1
for i = 0 to uBound(aData)
if adata(i)(2) > i_old then
aNewData(nCounter) = aRow
nCounter = nCounter + 1
aRow = aNewData(nCounter)
endif
i_old = adata(i)(2)
for k = 0 to 6
if adata(i)(0) = aVector(k) then arow(k) = adata(i)(1)
next k
next i
aNewData(nCounter) = aRow
oTargetRange.setdataarray(aNewData)
End Sub
Gruß R
- Dateianhänge
-
- data-remodel.ods
- (13.53 KiB) 147-mal heruntergeladen
Hallo Mikele, Chapeau!
Habe, das Makro, an dem ich gearbeitet habe gerade fertig, geht auch, siehe Anlage.
[code]Sub Transpose
aVector = Array(14,15,3,2,6,4,1)
oSheet = ThisComponent.Sheets.Tabelle1
oCursor = oSheet.createCursor
oCursor.gotoEndofUsedarea(false)
nEndrow = oCursor.Rangeaddress.EndRow
oSourceRange = oSheet.getcellRangebyPosition(1,0,3,nEndRow)
adata = oSourceRange.getdataarray
nBound = adata(uBound(adata))(2)- adata(0)(2)
oTargetRange = oSheet.getcellrangebyPosition(6,1,12,nBound+1)
aNewData = oTargetRange.Getdataarray
nCounter = 0
aRow = aNewData(nCounter)
i_old = 1
for i = 0 to uBound(aData)
if adata(i)(2) > i_old then
aNewData(nCounter) = aRow
nCounter = nCounter + 1
aRow = aNewData(nCounter)
endif
i_old = adata(i)(2)
for k = 0 to 6
if adata(i)(0) = aVector(k) then arow(k) = adata(i)(1)
next k
next i
aNewData(nCounter) = aRow
oTargetRange.setdataarray(aNewData)
End Sub[/code]
Gruß R