Forums Neueste Beiträge
 

diagonal fill

09/11/2010 - 11:12 von Gunnar Lindenblatt | Report spam
Hallo,

ich suche die Moeglichkeit, unter OpenOffice-Spreadsheet Zellen innerhalb
einer Markierung diagonal abfallend zu fuellen (mit Einsen "1").

Beispiel: Markiert sind die Felder D3 bis H99.

Ergebnis nach der Makro-Ausfuehrung:
D3, E4, F5, G6, H7 sind alle auf "1" gesetzt.
(Alle Zellen unterhalb Zeile 7 sind unveraendert, da die Hauptdiagonale
gefuellt wird.)


Kennt jemand ein fertiges Makro?

Gruss

Gunnar

Adresstausch: http://sedamo.info/
Buechertausch: http://bookcrossing.com/
deutsch-chinesisches Woerterbuch: http://dehanci.com/
 

Lesen sie die antworten

#1 Klaus Reiser
11/11/2010 - 17:13 | Warnen spam
Am 09.11.2010 11:12, schrieb Gunnar Lindenblatt:
Hallo,

ich suche die Moeglichkeit, unter OpenOffice-Spreadsheet Zellen innerhalb
einer Markierung diagonal abfallend zu fuellen (mit Einsen "1").

Beispiel: Markiert sind die Felder D3 bis H99.

Ergebnis nach der Makro-Ausfuehrung:
D3, E4, F5, G6, H7 sind alle auf "1" gesetzt.
(Alle Zellen unterhalb Zeile 7 sind unveraendert, da die Hauptdiagonale
gefuellt wird.)


Kennt jemand ein fertiges Makro?


Fertiges nicht aber ein schnell gebasteltes das zumindest ein Ansatz ist.
Die Cursorposition bestimmt die linke obere Startposition der Diagonale.
Anzahl Spalten (entspricht auch der Anzahl Zeilen) muss man noch von
Hand eingeben. Um auch dies mit dem Cursor markieren zu können muss man
noch etwas programmieren;-)

Gruss Klaus

sub diagonalFill1
myDoc = thisComponent
mySheet = myDoc.sheets(0)
vonspalte = getColumn1()
zeile = getRow1()
spalten =InputBox ("Bitte Spaltenanzahl eingeben")
bisspalte = vonspalte + spalten
for j=vonspalte to bisspalte-1
mycell = mysheet.getCellByPosition(j,zeile)
mycell.value = 1
zeile = zeile+1
next
end sub

function getRow1() as integer
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getRow1 = oAdr.Row
end function

function getColumn1() as integer
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object
oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getColumn1 = oAdr.Column
end function

Ähnliche fragen