tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
833
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Servus alle miteinander!

    Ich habe folgendes Problem:

    Ich möchte gern eine verschachtelte Wenn-Funktion in VBA formulieren. Ist das möglich, wenn ja wie?

    =WENN(MeinFeld<1400;"KB";WENN(UND(MeinFeld>=1400;MeinFeld<3000);"PKB";"VMB"))

    Danke schon mal im voraus.

    Fuchsei
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Was du da hast ist aber kein VBA, sondern das unlesbare Excel-Feld-Berechnung.
    Grundsätzlich ist swas möglich.
    Was geht denn bei deiner Formel nicht?

    Wenn du daraus aber eine VBA-Funktion machen willst, dann könnte das so aussehen
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Public Function myFunction(ByVal value As Long) As String
        Const C_MIN = 1400
        Const C_MAX = 3000
        Const C_PKB_TEXT = "PKB"
        Const C_VMB_TEXT = "VMB"
        Const C_KB_TEXT = "KB"
        
        myFunction = IIf(value < C_MIN, C_KB_TEXT, IIf(value >= C_MIN And value < C_MAX, C_PKB_TEXT, C_VMB_TEXT))
    End Function

    Oder aber das ganze umbauen und vom verschachtelten IF wegkommen
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Public Function myFunction(ByVal value As Long) As String
        Const C_MIN = 1400
        Const C_MAX = 3000
        Const C_PKB_TEXT = "PKB"
        Const C_VMB_TEXT = "VMB"
        Const C_KB_TEXT = "KB"
        
        Select Case value
            Case Is < C_MIN:            myFunction = C_KB_TEXT
            Case C_MIN To C_MAX - 1:    myFunction = C_PKB_TEXT
            Case Else:                  myFunction = C_VMB_TEXT
        End Select
     
    End Function

    Ich finde die 2te Variante einiges Schöner und übersichtlicher

    Achja, du kannst natürlich auch direkt mit den Werten arbeiten, ohne die Konstanten. Ist dann aber nicht mehr so Pflegeleicht und lesbar

    Im Excel kannst du es dann so aufrufen:
    Code :
    1
    
    =myFunction(A1)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Fuchsei Fuchsei ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    22
    Danke dir für die Hilfe.
    Ja schon klar das war einfach eine Excel_Funktion, die ich übersetzten wollte. Hat alles funktioniert hab mich für die zweite Variante entschieden.

    Fuchsei
     

Ähnliche Themen

  1. » Excel Wenn in Bereich Funktion
    Von ukyo184 im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 16.04.11, 17:42
  2. Excel: Wenn-Funktion und Datum
    Von rufus1 im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 15.02.10, 18:08
  3. Excel-Wenn-Funktion Problem
    Von redheador im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 15.04.08, 09:55
  4. Probleme mit funktion (wenn dann...)
    Von Sebigf im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 01.05.05, 19:27
  5. Excel Wenn- Funktion
    Von BladeNeo im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 26.10.04, 16:42

Stichworte