Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Oder Bedingung in Makro integrieren

Forumthread: VBA - Oder Bedingung in Makro integrieren

VBA - Oder Bedingung in Makro integrieren
Jonathan
Hallo liebe Experten,
in einer Tabelle müssen Materialien bestimmte Kriterien (5 Stk) erfüllen, dann wird jeweils ein Material gezählt. Duplikate werden also nicht berücksichtig.
Hierfür wurde vergangen Freitag ein Makro in diesem Forum erstellt (Vielen Dank nochmals).
Soweit funktioniert alles auch wunderbar.
Das Problem ist nun, dass eine der Bedingungen ein "Oder"-Kriterium ist (Sprich, es gibt zwei Kriterien für eine Spalte)
Wenn ich dieses Problem mit einem zweiten Makro löse, hat es zur Folge, dass ein Material welches beim ersten Makro bereits gezählt wurde, im zweiten Makro nochmals gezählt wird - Dies darf nicht sein.
Wie kann ich nun also, im ersten Makro die Oder-Bedingung einbauen?
Zur besseren Vorstellung ist hier eine Bsp-Datei mit den entsprechenden Makros und Erklärungen:
https://www.herber.de/bbs/user/62946.xls
Vielen Dank schon mal.
Gruß
Jonathan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA - Oder Bedingung in Makro integrieren
06.07.2009 15:02:58
Ramses
Hallo
Die EXCEL VBA Hilfe ist bessr als ihr Ruf, und ein wenig nachdenken sicher nicht falsch :-)
Ich lade mir dazu deine Datei nicht runter, das kannst du selber anpassen.
Hier die "Logik" dahinter
If Range("A1") = "x" or Range)"A1") = "y" Then
Gruss Rainer
AW: VBA - Oder Bedingung in Makro integrieren
07.07.2009 10:40:32
Jonathan
Hallo,
vielen Dank für den Hinweis... =) Das habe ich selbstverständlich schon ausprobiert. Leider hat es im vorhandenen Code nicht funktioniert.
Der Code wird später im Tabellenblatt mit =krit_D(A2:F15;K1;K2;K3;K4;K5)
Wenn ich nun in den Code ein OR arg6 einfüge und dann die entsprechende Zelle (M4) in die obige Formel reinschreibe funktioniert es nicht.
Wie bekomme ich das am besten hin?
'#### Für Kriterium D ####

Public Function krit_D(Bereich As Range, arg1, arg2, arg3, arg4, arg5) As Long
Dim arr As Variant
Dim L As Long
Dim Dic1 As Object
Dim Dic2 As Object
Set Dic1 = CreateObject("Scripting.dictionary")
Set Dic2 = CreateObject("Scripting.dictionary")
arr = Bereich
For L = 1 To UBound(arr)
If arr(L, 1) = arg1 Then
If arr(L, 2) = arg2 Then
If arr(L, 3)  arg3 Then
If arr(L, 4) = arg4 Then 'Oder arg6 (arg6 steht in dem Fall in M4 ("C") )
If arr(L, 6) = arg5 Then
If Not Dic2.exists(arr(L, 5)) Then
Dic2(arr(L, 5)) = 0
Dic1(Join(Array(arr(L, 1), arr(L, 2), arr(L, 3), arr(L, 4), arr(L,  _
5), arr(L, 6)), vbTab)) = 0
End If
End If
End If
End If
End If
End If
Next
krit_D = Dic1.Count
End Function


Vielen Dank.
Gruß
Jonathan

Anzeige
Problem gelöst
07.07.2009 12:48:41
Jonathan
Hallo zusammen,
das Problem wurde gelöst.
Es hat einfach der Arrayteil davor gefehlt...
Gruß
Jonathan
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Oder-Bedingung im Makro integrieren


Schritt-für-Schritt-Anleitung

Um eine "Oder"-Bedingung in ein Excel VBA Makro zu integrieren, kannst du folgende Schritte befolgen:

  1. Öffne deinen VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Finde dein Makro: Suche das Makro, in das du die "Oder"-Bedingung einfügen möchtest.

  3. Füge die "Oder"-Bedingung hinzu: Verwende die folgende Syntax, um die "Oder"-Bedingung zu implementieren:

    If Range("A1") = "x" Or Range("A1") = "y" Then
  4. Überprüfe deinen Code: Stelle sicher, dass alle Bedingungen in deinem Makro korrekt angeordnet sind, um sicherzustellen, dass die Logik funktioniert.

  5. Teste dein Makro: Führe dein Makro aus, um zu überprüfen, ob die "Oder"-Bedingung wie gewünscht funktioniert.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Einfügen von "Oder"-Bedingungen in VBA Makros ist ein Syntaxfehler. Hier sind einige Lösungen:

  • Syntax überprüfen: Stelle sicher, dass du das Schlüsselwort Or korrekt schreibst und dass alle Bedingungen richtig formuliert sind.

  • Variable Typen: Achte darauf, dass die Variablen die richtigen Datentypen haben. Zum Beispiel müssen Zahlen als Zahlen und Texte in Anführungszeichen stehen.

  • Testen der Bedingungen: Wenn die Bedingungen nicht wie erwartet funktionieren, teste jede Bedingung einzeln, um herauszufinden, wo das Problem liegt.


Alternative Methoden

Falls du Schwierigkeiten mit VBA hast, gibt es alternative Methoden:

  • Excel-Formeln: Du kannst auch Excel-Formeln verwenden, um "Oder"-Bedingungen zu überprüfen. Beispiel:

    =WENN(ODER(A1="x"; A1="y"); "Erfüllt"; "Nicht erfüllt")
  • Pivot-Tabellen: In einigen Fällen können Pivot-Tabellen helfen, ähnliche Anforderungen zu erfüllen, indem sie Daten aggregieren und analysieren.


Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Excel Makro mit einer "Oder"-Bedingung:

Public Function BeispielMakro(Bereich As Range, arg1 As String) As Long
    Dim L As Long
    Dim Zähler As Long
    Zähler = 0

    For L = 1 To Bereich.Rows.Count
        If Bereich.Cells(L, 1).Value = arg1 Or Bereich.Cells(L, 1).Value = "y" Then
            Zähler = Zähler + 1
        End If
    Next L

    BeispielMakro = Zähler
End Function

In diesem Beispiel zählt das Makro die Anzahl der Zeilen, die entweder "x" oder "y" enthalten.


Tipps für Profis

  • Verwende Select Case: Bei vielen Bedingungen kann Select Case übersichtlicher sein als viele If...Then-Anweisungen.

  • Optimierung der Performance: Achte darauf, dass dein Makro effizient ist, insbesondere wenn du mit großen Datenmengen arbeitest.

  • Ereignisgesteuerte Makros: Überlege, ob ein ereignisgesteuertes Makro besser für deine Anforderungen geeignet ist. Dies kann die Benutzererfahrung verbessern.


FAQ: Häufige Fragen

1. Was ist ein Excel Makro?
Ein Excel Makro ist eine programmierte Aktion in Excel, die es ermöglicht, wiederkehrende Aufgaben zu automatisieren.

2. Wie kann ich Fehler im VBA-Code finden?
Nutze die Debugging-Tools im VBA-Editor, um Fehler zu identifizieren. Setze Haltepunkte und überprüfe die Werte der Variablen während der Ausführung.

3. Was sind "Oder-Bedingungen" in VBA?
"ODER-Bedingungen" ermöglichen es dir, mehrere Kriterien zu überprüfen, wobei mindestens eine Bedingung erfüllt sein muss.

4. Kann ich mehrere "Oder-Bedingungen" kombinieren?
Ja, du kannst mehrere "Oder-Bedingungen" kombinieren, um komplexere Logik zu erstellen. Achte darauf, die Bedingungen klar zu strukturieren.

5. Welche Version von Excel benötige ich für VBA?
VBA ist in den meisten Versionen von Excel verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

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