Office: VBA If mit mehreren bedingungen

Helfe beim Thema VBA If mit mehreren bedingungen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Profi´s Ich werd noch Wahnsinnig mit den Verschachtelungen *lol Bei meinen versuchen stoße ich nur auf Fehler. Folgendes sollte dieser... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von myself84, 2. Dezember 2014.

  1. myself84 Erfahrener User

    VBA If mit mehreren bedingungen


    Hallo Profi´s

    Ich werd noch Wahnsinnig mit den Verschachtelungen *lol

    Bei meinen versuchen stoße ich nur auf Fehler.

    Folgendes sollte dieser Code machen

    Tooglebutton
    Wenn "true" dann Farbe Rot
    In K9 leerzeichen
    In J9 das Format auslesen und in I9 kopieren
    wenn I9 in % format dann
    In J9 formel
    sonnst ( also wenn I9 zb in Zahl Format ist )
    J9 diese Formel
    Wenn aber Tooglebutton "false" dann Farbe Grün
    In J9 das Format auslesen und in I9 kopieren
    wenn I9 in % format dann
    K9 Formel
    J9 Formel
    sonnst J9 formel
    Fertig





    Code:
    Private Sub ToggleButton13_Click()
    If ToggleButton13 = True Then
        ToggleButton13.BackColor = &HFF&
        Range("K9").Value = ""
        Range("J9").NumberFormat = Range("I9").NumberFormat
            If Range("I9").NumberFormat = "0%" Then
                Range("J9").FormulaLocal = "=wenn(I9="""";"""";(K9/E9)*100)"
            Else
            Range("J9").FormulaLocal = "=wenn(I9="""";"""";K9)"
            End If
    ElseIf ToggleButton13 = False Then
        ToggleButton13.BackColor = &HFF00&
        Range("J9").NumberFormat = Range("I9").NumberFormat
            If Range("I9").NumberFormat = "0%" Then
                Range("K9").FormulaLocal = "=E9*I9"
                Range("J9").FormulaLocal = "=Wenn(I9="""";"""";(K9/E9)*100)"
            Else
                Range("J9").FormulaLocal = "=wenn(I9="""";"""";K9)"
            End If
    End If
    End Sub
    

    Gruß Rene
     
    myself84, 2. Dezember 2014
    #1
  2. miriki Erfahrener User
    Moinsens!

    Da wirst Du wahrscheinlich etwas genauer angeben müssen, welcher Fehler wo genau auftritt. Und beachte bitte: Unerwartetes Verhalten ist kein Fehler im eigentlichen Sinne.

    Wenn ein Laufzeit-Fehler mit entsprechender Meldung auftritt, kannst Du per "Debuggen" auch die Zeile sehen, in der dieser Fehler aufgetreten ist.

    Schreibt er aber nur eine Formel, wo Du eigentlich eine andere Formel erwartet hättest, dann ist das ein logischer Denkfehler, für den VBA nichts kann. So auf den ersten Blick scheint der Source genau das zu tun, was Du im "Pflichtenheft" beschrieben hast, sofern ich nichts übersehen habe.

    * Im unteren Else-Zweig würde ich ggf. K9 explizit löschen, weil sonst ggf. ungewollte Überreste stehen bleiben. Ganz allgemein: Du bearbeitest J9 und K9, aber nicht in jedem IF oder ELSE Zweig wird unbedingt dafür gesorgt, den aktuellen Status zu bekommen. Du solltest also entweder vorher beide Zellen löschen und dann nur die setzen, die benötigt werden oder in jedem Zweig die jeweils nicht benötigte Zelle löschen, um ungewollte Überreste nach einem Status-Wechsel zu vermeiden. (Ich schätze mal, daß hier Dein "Fehler" zu finden ist...)

    * Die "ElseIf ..."-Zeile kannst Du eigentlich komplett durch ein einfaches "Else" ersetzen. Halb gedrückte Toggle-Buttons sollte es eigentlich nicht geben... ;-)

    * Farbzuweisung über &Hxxxxxx& geht zwar, ich bevorzuge für die Lesbarkait aber i.a. die rgb( r, g, b ) Funktion. (reine Geschmacksfrage)

    Gruß, Michael
     
  3. Beverly
    Beverly Erfahrener User
    Hi Rene,

    wenn ich deiner Beschreibung folge, würde ich sagen, der Code müsste so aussehen:

    Code:
    Private Sub ToggleButton13_Click()
        Range("I9").NumberFormat = Range("J9").NumberFormat
        If ToggleButton13 = True Then
            ToggleButton13.BackColor = &HFF&
            Range("K9").ClearContents
            If Range("I9").NumberFormat = "0%" Then
                Range("J9").FormulaLocal = "=wenn(I9="""";"""";(K9/E9)*100)"
            Else
                Range("J9").FormulaLocal = "=wenn(I9="""";"""";K9)"
            End If
        Else
            ToggleButton13.BackColor = &HFF00&
            If Range("I9").NumberFormat = "0%" Then
                Range("K9").FormulaLocal = "=E9*I9"
                Range("J9").FormulaLocal = "=Wenn(I9="""";"""";(K9/E9))"
            Else
                Range("J9").FormulaLocal = "=wenn(I9="""";"""";K9)"
            End If
        End If
    End Sub
    
    Bis später,
    Karin
     
    Zuletzt bearbeitet: 3. Dezember 2014
    Beverly, 3. Dezember 2014
    #3
  4. miriki Erfahrener User

    VBA If mit mehreren bedingungen

    Moin, nochmal...

    Mir fällt gerade noch auf:

    Das Ding wäre dann genau verkehrt herum...

    Gruß, Michael
     
  5. myself84 Erfahrener User
    Hallo

    Vielen Dank euch allen Jetzt funkt´s

    @miriki : Danke für die Erklärung beim nächsten Problem werde ich genauere angaben machen.
    @Beverly: Vielen Dank
     
    myself84, 3. Dezember 2014
    #5
Thema:

VBA If mit mehreren bedingungen

Die Seite wird geladen...
  1. VBA If mit mehreren bedingungen - Similar Threads - VBA mehreren bedingungen

  2. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. VBA: Mehrere Bedingungen in einer if then else Anweisung

    in Microsoft Excel Hilfe
    VBA: Mehrere Bedingungen in einer if then else Anweisung: Hallo zusammen*mrcool , ich möchte erreichen, dass eine Zeile (im Beispiel, GLSeg1MC) eingeblendet wird, wenn 3 Bedingungen additiv erfüllt sind. Ich habe es erfolglos, wie folgt, versucht: If...
  5. VBA zum Kopieren mehrerer Bereiche wenn Bedingung erfüllt

    in Microsoft Excel Hilfe
    VBA zum Kopieren mehrerer Bereiche wenn Bedingung erfüllt: Hallo, ich bin gerade ziemlich am Verzweifeln. Habe 15 Dateien mit je ca. 500.000 Zeilen. Die Blätter sind folgendermaßen strukturiert: <tbody> Datum + Uhrzeit Wert Intervall-Nr 1.1.19...
  6. If-Then-Abfrage nach Änderung einer Auswahl

    in Microsoft Access Hilfe
    If-Then-Abfrage nach Änderung einer Auswahl: Hallo, ich stehe etwas auf dem SChlauch und hoffe auch Unterstützung durch die Community: Ich habe eine Access-Datenbank, bei der es u.a. um die Planung von Lehrgängen geht. Es gibt eine...
  7. VBA - Zeile löschen bei mehreren IF-And Bedingungen

    in Microsoft Excel Hilfe
    VBA - Zeile löschen bei mehreren IF-And Bedingungen: Ausgangstabelle (Excel 2010) [ATTACH] Ich möchte komplette Zeilen löschen wenn in einem bestimmten Bereich gleichzeitig das Wort "off" steht. In diesem Beispiel: Wenn in Spalte C egal welche...
  8. VBA: For Each Schleife mit mehreren Bedingungen

    in Microsoft Excel Hilfe
    VBA: For Each Schleife mit mehreren Bedingungen: Hallo zusammen, erstmal möchte ich Euch eine schöne Osterzeit mit erholsamer Zeit wünschen.:rolleyes: Mein aktuelles Problem versuche ich schon seit geraumer Zeit zu lösen, aber da ich noch...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden