Custom Funktion von Excel in Libre Calc übertragen

Pyrukar

Captain
Registriert
Jan. 2013
Beiträge
3.473
Guten abend,

ich versuche gerade eine in Excel geschriebene Funktion (vba) in Libreoffice Calc zum laufen zu bringen.

Erst war es nur ein just for fun test, der aber anfangs so gut funktioniert hat, dass ich ernsthaft überlege das Zeug zu übertragen.

Also die Datei hat eine Makro Funktion die Calc sofort voll funktionstüchtig übertragen konnte. Bei der Funktion gabs Anfangs ein recht offensichtliches Problem. Die Funktion hieß unter Excel =Bedingteszählen und libreoffice mag das ä nicht ... so weit so gut, auch das ist ein Fehler der leicht zu beheben war.

Als ich das aber mit suchen/ersetzten geändert habe und das Skript offensichtlich zu funktionieren begann gabs das eigentliche Problem:
Ich habe den Basic Runtime Error 380 bekommen und kann mit den Infos die ich im Internet gefunden habe nicht ganz so viel anfangen.

Was die funktion können soll ist recht einfach erklärt ... ich möchte nicht nur nach Zelleninhalt sondern auch nach bestimmten Formatierungen prüfen können

Code:
Function BedingtesZaehlen(Bereich As Range, Optional ULimit As Double, Optional LLimit As Double, Optional FForm As Boolean, Optional UForm As Boolean, Optional KForm As Boolean, Optional Color As Integer)

Dim Zelle As Range

Dim x As Integer
Dim y As Integer

For Each Zelle In Bereich

x = 0
y = 0

If Zelle = "" Then GoTo Marke1

    If ULimit <> 0 Then
    y = y + 1
        If Zelle < ULimit Then x = x + 1
    End If

    If LLimit <> 0 Then
    y = y + 1
        If Zelle > LLimit Then x = x + 1
    End If

    If FForm = True Then
    y = y + 1
        If Zelle.Font.Bold = True Then x = x + 1
    End If
   
    If UForm = True Then
    y = y + 1
        If Zelle.Font.Underline > 0 Then x = x + 1
    End If
   
    If KForm = True Then
    y = y + 1
        If Zelle.Font.Italic = True Then x = x + 1
    End If
   
    If Color > 0 Then
    y = y + 1
        If Zelle.Interior.ColorIndex = Color Then x = x + 1
    End If
   
   
    If x = y Then BedingtesZaehlen = BedingtesZaehlen + 1
   
Marke1:
   
Next Zelle

End Function

Ich hoffe jemand kann mir einen Hinweis geben, wie ich die Funktion entweder in Basic umwandeln kann, oder sie anderweitig in Libre Office zum laufen bekomme :)

gruß
Pyrukar
 
hmmm, benutzt niemand Libre Office mit eigenen Funktionen, oder sollte ich diese Frage ggf. lieber im Programmieren Teil dieses Forums stellen?

gruß
Pyrukar
 
Zurück
Oben