von nobijohn » Mo, 15.07.2024 18:50
Danke für eure Antworten,
@mikeleb: gerade das funktioniert bei mir nicht. Die Funktion befindet sich in Meine Makros\Standard\Module_Funktion und sollte laut Hilfe allen Makros zugänglich sein, zumindest auf diesem Rechner. Aber beim Funktionsaufruf kommt der o.g. Fehler.
@Karolus: Das Makro richtet die Tabelle so wie sie gebraucht wird. Hinter jedem Kunden entsteht ein Array um monatliche Zahlen zu ermitteln. Dazu wird vom Makro eine Universalformel in eine Helferzelle geschrieben und später in die Arrays kopiert. [oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")"]
Über jedem Array soll die Spaltensumme stehen. Für die Summenformel brauch ich die Abfangs- und Endzeile sowie den col_name.
Hier der Abschnitt:
myDoc = thisComponent
mySheet = myDoc.sheets(0)
myView = myDoc.CurrentController
oCelle=myDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
oColumn=oCelle.column
oCelle=mySheet.getCellByPosition(ocolumn,orow)
ActKdNr = oCelle.value
'MsgBox ActKdNr
Dim EOF as integer 'Nur zum testen!
EOF = 15 'Nur zum testen!
Do While oRow < EOF
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
Do While NextKdNr = 0
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
'MsgBox NextKdNr
Loop
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
col_name (oCol)
MsgBox col_name
Loop
Danke für eure Antworten,
@mikeleb: gerade das funktioniert bei mir nicht. Die Funktion befindet sich in Meine Makros\Standard\Module_Funktion und sollte laut Hilfe allen Makros zugänglich sein, zumindest auf diesem Rechner. Aber beim Funktionsaufruf kommt der o.g. Fehler.
@Karolus: Das Makro richtet die Tabelle so wie sie gebraucht wird. Hinter jedem Kunden entsteht ein Array um monatliche Zahlen zu ermitteln. Dazu wird vom Makro eine Universalformel in eine Helferzelle geschrieben und später in die Arrays kopiert. [oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")"]
Über jedem Array soll die Spaltensumme stehen. Für die Summenformel brauch ich die Abfangs- und Endzeile sowie den col_name.
Hier der Abschnitt:
myDoc = thisComponent
mySheet = myDoc.sheets(0)
myView = myDoc.CurrentController
oCelle=myDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
oColumn=oCelle.column
oCelle=mySheet.getCellByPosition(ocolumn,orow)
ActKdNr = oCelle.value
'MsgBox ActKdNr
Dim EOF as integer 'Nur zum testen!
EOF = 15 'Nur zum testen!
Do While oRow < EOF
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
Do While NextKdNr = 0
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
'MsgBox NextKdNr
Loop
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
col_name (oCol)
MsgBox col_name
Loop