Seite 1 von 1

benutzerdefinierte funktion

Verfasst: Mo, 03.04.2006 12:00
von kannenklaus
hallo zusammen.

für ein einfaches bewertungsschema habe ich eine benutzerdefinierte funktion geschrieben. argumente die nicht gleich

- fahrbahn,
- damm,
- einschnitt,
- bankett,
- brücke größer 50 m bzw.
- brücke kleiner 50 m

sind, sollen nur den wert "-" bekommen. hier stellt sich mir die frage, ob das im code nicht kürzer geht wie im folgenden beispiel:

Code: Alles auswählen

Function B87Fl(konMerkmal As String) As String
    If konMerkmal = "Fahrbahn" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Damm" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Einschnitt" Then
    B87Fl = "sehr hoch"
     ElseIf konMerkmal = "Bankett" Then
    B87Fl = "sehr hoch"
    ElseIf konMerkmal = "Brücke kleiner 50 m" Then
    B87Fl = "sehr hoch"
        ElseIf konMerkmal = "Brücke größer 50 m" Then
    B87Fl = "hoch"
    ElseIf konMerkmal <> "Fahrbahn" or konMerkmal <> "Damm" OR konMerkmal <> "Einschnitt" _
    OR konMerkmal <> "Bankett" OR konMerkmal <> "Brücke kleiner 50 m" OR konMerkmal <> "Brücke größer 50 m" then
    B87Fl = "-" 
    End If
End Function
freue mich auf eine antwort

grüße

klaus

Verfasst: Mo, 03.04.2006 12:35
von ykcim

Code: Alles auswählen

Function B87Fl(konMerkmal As String) As String
    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke kleiner 50 m")
    B87Fl = "-"
    For i=0 to ubound(sehrhoch) 
      if konMerkmal=sehrhoch(i) then B87Fl = "sehr hoch"
    next  
    If konMerkmal = "Brücke größer 50 m" Then B87Fl = "hoch"
End Function
mfg
Michael

Verfasst: Mo, 03.04.2006 14:58
von kannenklaus
hallo michael,

bei der folg. codezeile bekomme ich die fehlermeldung "basic laufzeifehler variable nicht definiert."

Code: Alles auswählen

    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke kleiner 50 m")
habe den array schon mit dim und variant bzw. string deklariert - ohne erfolg.

grüße

klaus

Verfasst: Mo, 03.04.2006 15:54
von ykcim
Du hast wahrscheinlich Option Explicit eingestellt.
Dann sollte es so gehen

Code: Alles auswählen

    dim sehrhoch() as string
    dim i as integer
    Sehrhoch = Array("Fahrbahn","Damm","Einschnitt","Bankett","Brücke_ kleiner 50 m")
......
mfg
Michael

[gelöst]:benutzerdefinierte funktion

Verfasst: Mo, 03.04.2006 16:05
von kannenklaus
hallo michael,

kleine dinge große wirkung. bei der deklaration von sehrhoch haben die klammern gefehlt.

danke für deine hilfe

grüße klaus