Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere If Bedingungen

Mehrere If Bedingungen
15.01.2020 22:58:14
Melli

Hallo zusammen,
zu allererst muss ich sagen, dass ich keine Ahnung mit VBA habe. Daher hoffe ich auf eure Hilfe.
Ich möchte ein Makro schreiben, dass prüft ob in einer der Zellen "True" steht. Falls ja, soll _
er das Makro GF_rot ausführen falls alle Zellen auf "False stehen" das Makro GF_grau ausführen. _
HIntergrund ist, dass wenn eine der Checkboxen auf true steht die Ampel rot eingefärbt ist und _ wenn alle auf false stehen soll sie grau sein. Könnt ihr mir weiterhelfen? Irgendwie funktioniert es nicht so recht....

Sub ICON_einfaerben
If ActiveSheet.Range("J36").Value = True Then
If ActiveSheet.Range("J40").Value = True Then
If ActiveSheet.Range("J41").Value = True Then
If ActiveSheet.Range("N36").Value = True Then
If ActiveSheet.Range("N37").Value = True Then
If ActiveSheet.Range("N38").Value = True Then
Call GF_rot
Else
Call GF_grau
End If
End If
End If
End If
End If
End If
End Sub

Vielen Dank vorab
S.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere If Bedingungen
16.01.2020 00:14:23
Werner
Hallo Melli,
so?
Sub ICON_einfaerben()
Dim raBereich As Range, raZelle As Range
Dim boVorhanden As Boolean
Set raBereich = Range("J36,J40:J41,N36:N38")
For Each raZelle In raBereich
If raZelle = True Then
boVorhanden = True
Exit For
End If
Next raZelle
If boVorhanden Then
Call GF_rot
Else
Call GF_grau
End If
Set raBereich = Nothing
End Sub
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere IF-Bedingungen in Excel VBA richtig anwenden


Schritt-für-Schritt-Anleitung

Wenn du ein Makro in Excel VBA erstellen möchtest, das mehrere IF-Bedingungen nacheinander abfragt, kannst du das folgende Beispiel verwenden. Dieses Skript prüft, ob in bestimmten Zellen der Wert "True" steht und führt je nach Ergebnis unterschiedliche Makros aus.

Hier ist ein einfaches Beispiel:

Sub ICON_einfaerben()
    Dim raBereich As Range, raZelle As Range
    Dim boVorhanden As Boolean
    Set raBereich = Range("J36,J40:J41,N36:N38")

    For Each raZelle In raBereich
        If raZelle.Value = True Then
            boVorhanden = True
            Exit For
        End If
    Next raZelle

    If boVorhanden Then
        Call GF_rot
    Else
        Call GF_grau
    End If

    Set raBereich = Nothing
End Sub

In diesem Beispiel wird der Bereich "J36,J40:J41,N36:N38" auf "True" überprüft. Wenn mindestens eine Zelle diesen Wert hat, wird das Makro GF_rot aufgerufen; andernfalls wird GF_grau ausgeführt.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht aufgerufen.
    Überprüfe, ob die Makros GF_rot und GF_grau korrekt definiert sind und keine Fehler enthalten.

  • Fehler: Zellen werden nicht erkannt.
    Stelle sicher, dass der Zellbereich korrekt angegeben ist und die Zellen tatsächlich "True" oder "False" enthalten.

  • Fehler: Mehrere IF-Bedingungen werden nicht korrekt abgefragt.
    Verwende Exit For, um die Schleife zu verlassen, sobald eine Bedingung erfüllt ist. Dies verhindert unnötige Überprüfungen.


Alternative Methoden

Eine alternative Methode zur Prüfung mehrerer Bedingungen in Excel VBA ist die Verwendung von Select Case. Diese Methode kann besonders nützlich sein, wenn du mehr als zwei Bedingungen prüfen musst.

Beispiel:

Sub ICON_einfaerben()
    Dim raBereich As Range
    Set raBereich = Range("J36,J40:J41,N36:N38")

    Select Case True
        Case Application.WorksheetFunction.CountIf(raBereich, True) > 0
            Call GF_rot
        Case Else
            Call GF_grau
    End Select

    Set raBereich = Nothing
End Sub

Hier wird CountIf verwendet, um die Anzahl der "True"-Werte im angegebenen Bereich zu zählen.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von mehreren IF-Bedingungen in Excel VBA:

  1. Ampelanzeige steuern:
    Wenn eine Checkbox aktiviert ist, färbe die Ampel rot, andernfalls grau.

  2. Bedingte Formatierung:
    Je nach Wert in einer Zelle kann eine bestimmte Formatierung angewendet werden.

  3. Datenvalidierung:
    Überprüfe mehrere Zellen auf spezifische Kriterien und führe eine Aktion basierend auf dem Ergebnis aus.


Tipps für Profis

  • Nutze Dim für die Deklaration deiner Variablen, um den Code übersichtlicher zu gestalten.
  • Halte deinen Code modular, indem du Funktionen für wiederkehrende Aufgaben erstellst.
  • Verwende Kommentare, um deinen Code zu dokumentieren und die Nachvollziehbarkeit zu verbessern.
  • Überlege, ob es sinnvoll ist, If Then-Anweisungen in benutzerdefinierte Funktionen auszulagern, um den Code aufzuräumen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere IF-Bedingungen in einer Zeile schreiben?
Du kannst die Bedingungen mit And oder Or verknüpfen, um sie in einer einzigen IF-Anweisung zu kombinieren.

2. Was ist der Unterschied zwischen If...Then und Select Case?
If...Then eignet sich gut für einfache Bedingungen, während Select Case bei vielen Bedingungen oft übersichtlicher ist.

3. Wie kann ich sicherstellen, dass mein Makro immer funktioniert?
Teste dein Makro regelmäßig und prüfe, ob alle Bedingungen korrekt abgefragt werden.

4. Gibt es eine Möglichkeit, die Ausführung von Makros zu beschleunigen?
Vermeide unnötige Berechnungen und setze Application.ScreenUpdating = False vor der Ausführung deines Makros.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige