[Gelöst] Im Makro Stunden berechnen und ausgeben
Verfasst: Sa 31. Aug 2024, 17:54
Hallo, hab wieder ein kleines Problem
Ich möchte in einer Calc Tabelle aus zwei Werte, im Makro die Zwischenzeit berechnen.
Listenfeld 1 Minus Listenfeld 2 ist Listenfeld 3.
REM ***** BASIC *****
Dim odialog as object, oTab as object
Dim n as integer 'akutelle Zeile
Sub Main
'ZUgriff auf Dokument
oDoc=ThisComponent
'aktuelle Tabelle
oTab=oDoc.CurrentController.ActiveSheet
'Bestimme letzte bentzte Zelle
oCur=oTab.createCursor
oCur.gotoEndOfUsedArea(False)
n=oCur.rangeaddress.startrow+1
'Zugriff auf Dialog
DialogLibraries.loadLibrary( "Standard")
oLib = DialogLibraries.getByName("Standard")
oDialog = CreateUnoDialog(oLib.getByName("Dialog1"))
'Setze aktuelles Datum
octrdate=odialog.getcontrol("DateField1")
octrdate.date=cdatetounodate(now())
'Starte Dialog
x=oDialog.execute
End Sub
sub uebernehmen
octrdate=odialog.getcontrol("DateField1")
octrkat=odialog.getcontrol("ListBox1")
octrfehler=odialog.getcontrol("ListBox2")
octrbedin=odialog.getcontrol("ListBox3")
octrbemerk=odialog.getcontrol("ListBox4")
octrank=odialog.getcontrol("ListBox5")
octrabf=odialog.getcontrol("ListBox6")
oergebnis=odialog.getcontrol("ListBox7")
rem ergebnis=(ListBox6-Listbox5)=odialog.getcontrol("ListBox7")
oTab.getcellbyposition(1,n).value=CDateFromUnoDate(octrdate.date)
oTab.getcellbyposition(2,n).string=octrkat.SelectedItem
oTab.getcellbyposition(3,n).string=octrfehler.SelectedItem
oTab.getcellbyposition(4,n).string=octrbedin.SelectedItem
oTab.getcellbyposition(5,n).string=octrbemerk.SelectedItem
oTab.getcellbyposition(6,n).string=octrank.SelectedItem
oTab.getcellbyposition(7,n).string=octrabf.SelectedItem
oTab.getcellbyposition(8,n).string=oergebnis.SelectedItem
'Zeilenzähler erhöhen
n=n+1
end sub
function oergebnis
oergebnis=(octrabf-octrank)
end function
Geht das so einfach ? oder geht es überhaupt nicht das beide Werte dann ListenBox7 ergeben.
Schon mal vielen dank fürs durchlesen.
Ich möchte in einer Calc Tabelle aus zwei Werte, im Makro die Zwischenzeit berechnen.
Listenfeld 1 Minus Listenfeld 2 ist Listenfeld 3.
REM ***** BASIC *****
Dim odialog as object, oTab as object
Dim n as integer 'akutelle Zeile
Sub Main
'ZUgriff auf Dokument
oDoc=ThisComponent
'aktuelle Tabelle
oTab=oDoc.CurrentController.ActiveSheet
'Bestimme letzte bentzte Zelle
oCur=oTab.createCursor
oCur.gotoEndOfUsedArea(False)
n=oCur.rangeaddress.startrow+1
'Zugriff auf Dialog
DialogLibraries.loadLibrary( "Standard")
oLib = DialogLibraries.getByName("Standard")
oDialog = CreateUnoDialog(oLib.getByName("Dialog1"))
'Setze aktuelles Datum
octrdate=odialog.getcontrol("DateField1")
octrdate.date=cdatetounodate(now())
'Starte Dialog
x=oDialog.execute
End Sub
sub uebernehmen
octrdate=odialog.getcontrol("DateField1")
octrkat=odialog.getcontrol("ListBox1")
octrfehler=odialog.getcontrol("ListBox2")
octrbedin=odialog.getcontrol("ListBox3")
octrbemerk=odialog.getcontrol("ListBox4")
octrank=odialog.getcontrol("ListBox5")
octrabf=odialog.getcontrol("ListBox6")
oergebnis=odialog.getcontrol("ListBox7")
rem ergebnis=(ListBox6-Listbox5)=odialog.getcontrol("ListBox7")
oTab.getcellbyposition(1,n).value=CDateFromUnoDate(octrdate.date)
oTab.getcellbyposition(2,n).string=octrkat.SelectedItem
oTab.getcellbyposition(3,n).string=octrfehler.SelectedItem
oTab.getcellbyposition(4,n).string=octrbedin.SelectedItem
oTab.getcellbyposition(5,n).string=octrbemerk.SelectedItem
oTab.getcellbyposition(6,n).string=octrank.SelectedItem
oTab.getcellbyposition(7,n).string=octrabf.SelectedItem
oTab.getcellbyposition(8,n).string=oergebnis.SelectedItem
'Zeilenzähler erhöhen
n=n+1
end sub
function oergebnis
oergebnis=(octrabf-octrank)
end function
Geht das so einfach ? oder geht es überhaupt nicht das beide Werte dann ListenBox7 ergeben.
Schon mal vielen dank fürs durchlesen.