ich muss eine Stundenabrechnung, die auf Excel Makros aufbaut an Open Office anpassen.
Leider bin ich auf einige Probleme gestossen (abgesehen davon, dass die kompletten Makros umgeschrieben werden müssen

Ein Problem habe ich mit den ComboBoxen (die z.B. erst am OpenOffice 2.0 funktionieren)
Zum Herausfinden, wie Basic funktioniert habe ich das Makro aufzeichnen wollen.
In der Combobox gibt es verschiedene Auswahlmöglichkeiten z.B. U für Urlaub. Wenn U gewählt werden, soll in die Zeit Spalte 8:00 (Stunden) eingetragen werden und diese in die Spalte WAKUR übernommen werden.
Beim Aufzeichnen hat alles funktioniert, bis auf das U zu übernehmen. Es kam meines Erachten auch nicht im Aufgezeichneten Makro vor. Kann es sein, dass Basic nichts mit ComboBoxen anfangen kann?
Code: Alles auswählen
sub UrlaubUebertragen
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$E$11"
rem "$E$11" entspricht Spalte Zeit
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "8:00"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$K$11"
rem "$E$11" entspricht Spalte Zeit WAKUR
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = "=E11"
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
end sub
Code: Alles auswählen
Sub UrlaubKrank()
Dim x As Integer
Dim y As Integer
For x = 4 To 34
If (UCase(Cells(x, 7).Value) = "U") Then Cells(x, 11).Formula = "8:00:00"
Next x
For x = 4 To 34
If (UCase(Cells(x, 7).Value) = "U") Then Cells(x, 5).Formula = "8:00:00"
Next x
For x = 4 To 34
If (UCase(Cells(x, 7).Value) = "U") Then Cells(x, 6).Formula = "Urlaub"
Next x
End Sub
Vielen Dank im Voraus
cldi