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