Simple MS-Office-Makros funktionieren nicht unter LibreOffice

Hallo zusammen,

kann mir einer bei zwei simplen MS-Office Makros helfen um die in Libreoffice lauffähig zu machen?
Hab den Rekorder und auch bisschen selbst rumprobieren anhand des Ergebnisses versucht aber iwie bringt das einen nichtmal ansatzweise weiter.

Makro1: kopieren einer Zelle mit Formelinhalt und anschließend kleine Änderungen an der Formel

Sub Calc()

zeilenIndex = 1

''''' Zu ändernde Werte'''''
copyCellRowNumber = 12
pasteCellRowNumber = 13
''''''''''''''''''''''''''''
    
While zeilenIndex < 30
    zeilenIndexAlsString = Format(zeilenIndex, "")
    If Cells(zeilenIndex, copyCellRowNumber).Value <> "" And Cells(zeilenIndex, pasteCellRowNumber).Value = "" Then
        Cells(zeilenIndex, pasteCellRowNumber).Copy
        Cells(zeilenIndex, pasteCellNumber).Insert
        Cells(zeilenIndex, pasteCellNumber).Replace "/", "-"
        Cells(zeilenIndex, pasteCellNumber).Replace "-1", ""
        Cells(zeilenIndex, pasteCellNumber).Replace "H", "G"
        Cells(zeilenIndex, pasteCellNumber).NumberFormat = "0.00000"
    Else
    
    End If
            
    zeilenIndex = zeilenIndex + 1
Wend

Makro2: Z.B. ersten 100 Zeilen durchinterieren und dabei prüfen ob Spalte 4(D) einen der Werte “buy” oder “sell” hat und ob diese Zeile keine Hintergrundfarbe hat. Wenn true und buy dann Zeile Grün färben, wenn true und sell, dann Zeile Rot färben und bei beiden Fällen eine Zelle Orange färben.

Sub faerben()

zeilenIndex = 1
buycellspalte = 4

While zeilenIndex < 100
    zeilenIndexAlsString = Format(zeilenIndex, "")
    If Cells(zeilenIndex, buycellspalte).Value = "buy" And Cells(zeilenIndex, buycellspalte).Interior.ColorIndex = xlNone Then

    ' grün
    Range("A" + zeilenIndexAlsString + ":k" + zeilenIndexAlsString).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 5296274
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
    'orange
    Range("L" + zeilenIndexAlsString).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
ElseIf Cells(zeilenIndex, buycellspalte).Value = "sell" And Cells(zeilenIndex, buycellspalte).Interior.ColorIndex = xlNone Then

    'rot
    Range("A" + zeilenIndexAlsString + ":K" + zeilenIndexAlsString).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
    'orange
    Range("L" + zeilenIndexAlsString).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
Else

End If
zeilenIndex = zeilenIndex + 1
Wend

Das Paradigma der Spreadsheetsoftware ist, dass man Formeln durch Eingabe erzeugt, und sie den errechneten Wert an die Zelle abliefern lässt, in der die jeweilige Formel steht.

Aufgaben, bei denen man wirklich trickreichen UserCode braucht, um den Formelbestand zu ändern, kommen so gut wie nie vor. Ich habe solche Dinge zwar schon gemacht, aber entweder, um für jemanden ein schlecht entwickelts Rechenblatt zu retten, oder aus reinem Spaß an der Sache. Ich kann mir absoulut nicht vorstellen, wozu ein Sel/Buy-Sheet sowas brauchen sollte.

Bedingte Zellfärbungen macht man mit CF (ConditionalFormatting).

Mein Rat: Entwickle deine Rechenblätter so, dass du den oben eingefügten Kram nicht brauchst.

Naja im Grunde handelt sich um Transaktionen, die ich in CSV-Format runter lade und dadurch gewisse Berechnungen erstelle um einen Überblick über den aktuellen Gesamtstatus zu behalten. Deswegen ist es mir nicht möglich bzw. nicht Zweckmäßig die Rechenblätter umzugestalten. :frowning:

Wenn du überzeugt bist “Makros” zu brauchen:
-A- Es muss LibreOffice/OpenOffice sein:
-A1- Beschreibe die Aufgaben genau und ziemlich allgemein (keine spezifischen Zelladdressen z.B.)
-A2a- Entwickle den benötigten Usercode unter (z.B.) LibreOffice BASIC neu.
-A2b- Bitte jemanden mit mehr Erfahrung das -A2a-Entsprechende für dich zu tun.
-B- Du willst dich unbedingt auf vorhandenen VBA-Code stützen:
Nimm Excel.