Basic Libre Calc Skript

Pyrukar

Captain
Registriert
Jan. 2013
Beiträge
3.468
hallo zusammen,

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. Im Folgenden habe ich das VBA Skript angehängt.

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 :)
Ich habe das Thema schon mal im Forum Office gefragt, jedoch dort leider keinen Rücklauf bekommen. Ich hoffe hier gibts jemand der mir Helfen kann :)

gruß
Pyrukar
 
Ja,
aber ich hatte gehofft, dass die fehlenden Antworten aufs falsche Forum zurückzuführen sind.
Anscheinend ist es jedoch so, dass es niemanden hier gibt, der mir helfen kann :(

Benutzt niemand libreoffice mit Makros bzw. kennt sich hier keiner mit Basic aus? Das kann ich mir einfach nicht vorstellen?!
 
Zurück
Oben