Mit folgender
Function wird eine römische Zahl in eine arabische umgewandelt:
Function RomToArab(r As String) As Integer
Dim p As Integer
Dim z As String
If Len(r) = 1 Then '1. Basisklausel
Select Case r
Case "I"
RomToArab = 1
Case "V"
RomToArab = 5
Case "X"
RomToArab = 10
Case "L"
RomToArab = 50
Case "C"
RomToArab = 100
Case "D"
RomToArab = 500
Case "M"
RomToArab = 1000
End Select
ElseIf Len(r) = 0 Then ' 2. Basisklausel
RomToArab = 0
Else ' rekursive Klausel
search_max r, z, p
RomToArab = RomToArab(z) - _
RomToArab(Mid(r, 1, p - 1)) + _
RomToArab(Mid(r, p + 1, 1000))
End If
End Function
Funktioniert auch alles bestens mit der Formel =RomToArab(F2) , wenn in F2 eine römische Zahl eingetragen ist.
Ist jedoch keine römische Zahl eingetragen erhalte ich als Ergebnis 0. Wie müßte man bitte vorgehen, damit bei keinem Eintrag einer römischen Zahl als Ergebnis die Zelle leer bleibt und keine Null eingetragen wird.
Danke
Josef