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.
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
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