Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfung, ob Variable in einer Menge von Werten

Forumthread: Prüfung, ob Variable in einer Menge von Werten

Prüfung, ob Variable in einer Menge von Werten
12.12.2005 14:39:39
Werten
Hallo Leute,
diesmal ist mir leider kein einfacherer Betreff eingefallen... :-)
Wie kann ich einfach prüfen, ob eine Variable in einer Menge vorgegebener Werte enthalten ist? Also z.B. folgenden Code vereinfachen:
If (strTest = "Paul") Or (strTest = "Claudia") Or (strTest = "Hilda") Then
If (strTest = "Paul") Then
' Pauls Code
ElseIf (strTest = "Claudia") Then
' Claudias Code
Else
' Hildas Code
End If
End If
Also: Gibt's so was wie: If strTest In ("Paul", "Claudia", "Hilda") ?
Meine VBA-Hilfe spuckt für das Suchwort 'In' leider gar nix aus...
Vielen Dank sagt
der Jens
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung, ob Variable in einer Menge von Werten
12.12.2005 14:59:56
Werten
Hi Jens,
weiss nicht genau was dein Ziel ist aber mit Select Case
kannst du meherer feste vorgaben prüfen:
Select Case strTest
Case "Paul", "Claudia", "Hilda"
msgbox "strTest ist Paul, Claudia oder Hilda."
Case Else
msgbox "strTest ist nicht Paul, Claudia oder Hilda."
End Select
Gruss Peter
Anzeige
AW: Prüfung, ob Variable in einer Menge von Werten
12.12.2005 15:37:23
Werten
Hallo Peter,
ich hatte mich wahrscheinlich schlecht ausgedrückt...
Worum's mir geht, ist Folgendes:
Wie kann ich
(1) einen gemeinsamen Codeteil ausführen, wenn strTest Paul, Claudia oder Hilda ist
(2) einen anderen Codeteil (_vor_ dem anderen Code), allerdings abhängig vom Wert von strTest?
Ist das jetzt klarer erklärt?
Am schönsten wär's vielleicht so:
Select Case strTest:
Case "Paul": ' Code Paul
Case "Claudia": ' Code Claudia
Case "Hilda": ' Code Hilda
Case "Paul", "Claudia", "Hilda": ' gemeinsamer Code
End Select
Leider geht Excel in die letzte Case-Bedingung nicht mehr rein, sondern springt sofort zum End Select. Kann man das irgendwie steuern?
Vielen Dank sagt
der Jens
Anzeige
AW: Prüfung, ob Variable in einer Menge von Werten
12.12.2005 15:46:03
Werten
Hallo
mit 2x select geht es so...

Sub Paula()
Dim strTest$
strTest = "Hilda" 'zum Testen
Select Case strTest
Case "Paul", "Claudia", "Hilda"
Select Case strTest
Case "Paul"
MsgBox "Code Paul"
Case "Claudia"
MsgBox " Code Claudia"
Case "Hilda"
MsgBox " Code Hilda"
End Select
MsgBox "gemeinsamer Code"
End Select
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Prüfung, ob Variable in einer Menge von Werten
12.12.2005 16:01:22
Werten
Hallo UweD,
danke für den Hinweis.
Da hatte ich wohl Kartoffeln vor den Augen...
Inzwischen hab ich mit einer boolean-Variablen ein workaround gefunden, aber die Lösung mit 2x Select ist natürlich besser!
Also vielen Dank!
Jens
anderer Ansatz
12.12.2005 16:31:50
Reinhard
Hi Jens,
Option Explicit
Sub tt()
Dim strTest, pos
strTest = InputBox("eingabe")
pos = InStr("PaulClaudiaHilda", strTest)
If pos <> 0 Then Application.Run ("Makro" & pos)
End Sub
Sub Makro1()
MsgBox "P"
End Sub
Sub Makro5()
MsgBox "C"
End Sub
Sub Makro12()
MsgBox "H"
End Sub
application.Run (strTest) ging natürlich auch wenn die Makros Paul() usw heißen
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige
AW: anderer Ansatz
13.12.2005 12:44:50
Jens
Hallo Reinhard!
Cooler Ansatz, recht elegant und kurz, aber wohl auch etwas fehleranfällig. ZB falls du nur einen Buchstaben in einem der Namen änderst, musst du dich daran erinnern, die jeweiligen Zahlen mitzuändern...
Also falls aus Paul Paula wird, müssen auch die Makro umbenannt werden...
Ansonsten aber eine schöne Variante!
LG,
Jens
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Prüfen, ob eine Variable in einer Menge von Werten enthalten ist


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine Variable in einer Menge von Werten enthalten ist, kannst du die Select Case-Anweisung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel-VBA-Editor (Alt + F11).

  2. Erstelle ein neues Modul (Einfügen > Modul).

  3. Füge den folgenden Code ein:

    Sub PrüfenVariable()
       Dim strTest As String
       strTest = "Hilda" ' Beispielwert
    
       Select Case strTest
           Case "Paul"
               MsgBox "Code für Paul"
           Case "Claudia"
               MsgBox "Code für Claudia"
           Case "Hilda"
               MsgBox "Code für Hilda"
       End Select
    
       ' Gemeinsamer Code
       If strTest = "Paul" Or strTest = "Claudia" Or strTest = "Hilda" Then
           MsgBox "Gemeinsamer Code für Paul, Claudia oder Hilda."
       End If
    End Sub
  4. Führe das Makro aus, um die verschiedenen Meldungen anzuzeigen.

Mit dieser Methode kannst du einfach überprüfen, ob eine Variable in einer Menge von Werten enthalten ist und gleichzeitig spezifische Codes ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Select Case springt sofort zum End Select."

    • Lösung: Stelle sicher, dass du nicht mehrere Select Case-Anweisungen ineinander verwendest, ohne sie richtig zu strukturieren. Verwende die oben genannte Struktur, um dies zu vermeiden.
  • Fehler: "Die Variable wird nicht erkannt."

    • Lösung: Überprüfe, ob die Variable korrekt deklariert und initialisiert wurde. Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind.

Alternative Methoden

Eine alternative Methode ist die Verwendung von InStr, um zu prüfen, ob die Variable in einer Zeichenkette enthalten ist. Hier ist ein Beispiel:

Sub AlternativePrüfung()
    Dim strTest As String
    strTest = "Hilda"
    Dim pos As Integer

    pos = InStr("Paul,Claudia,Hilda", strTest)
    If pos > 0 Then
        MsgBox strTest & " ist in der Liste enthalten."
    Else
        MsgBox strTest & " ist nicht in der Liste enthalten."
    End If
End Sub

Diese Methode kann nützlich sein, wenn du mit einer großen Menge an Werten arbeitest.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die oben genannten Konzepte besser zu verstehen:

  1. Prüfung mit Select Case:

    Sub BeispielSelectCase()
       Dim strName As String
       strName = "Claudia"
    
       Select Case strName
           Case "Paul"
               MsgBox "Hallo Paul!"
           Case "Claudia"
               MsgBox "Hallo Claudia!"
           Case "Hilda"
               MsgBox "Hallo Hilda!"
           Case Else
               MsgBox "Unbekannter Name."
       End Select
    End Sub
  2. Prüfung mit InStr:

    Sub BeispielInStr()
       Dim strName As String
       strName = "Paul"
    
       If InStr("Paul,Claudia,Hilda", strName) > 0 Then
           MsgBox strName & " ist in der Liste!"
       Else
           MsgBox strName & " ist nicht in der Liste."
       End If
    End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies hilft dir, Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, damit du und andere Benutzer verstehen, was der Code macht.
  • Testen: Teste deinen Code regelmäßig, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Ist es möglich, mehrere Werte in einer Select Case-Anweisung zu kombinieren?
Ja, du kannst mehrere Werte in einem Case kombinieren, wie in den obigen Beispielen gezeigt.

2. Wie kann ich einen gemeinsamen Code für mehrere Case-Bedingungen ausführen?
Verwende eine separate If-Anweisung nach der Select Case, um den gemeinsamen Code auszuführen, wie im ersten Beispiel beschrieben.

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