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

Forumthread: Select Case mit Optionbutton

Select Case mit Optionbutton
19.10.2006 10:50:34
Ingo
Hallo zusammen,
ich habe eine Problem mit select case. Irgendwie befüllt diese Prozedur nicht die Zelle wie gewünscht. Eine Fehlermeldung erscheint auch nicht, weiß jemand, was daran falsch ist?

Private Sub ansprechpartner_case()
Dim Ansprechpartner As String
Select Case Ansprechpartner
Case Is = opt_AP1_Click()
Ansprechpartner = "Herr xyz"
Case Is = opt_AP2_Click()
Ansprechpartner = "Frau abc"
Case Else
MsgBox "Bitte wählen Sie einen Ansprechpartner aus", vbCritical
End Select
End Sub


Private Sub cmd_neue_leistung_hinzu_Click()
ActiveCell.Offset(0, 1) = Ansprechpartner
Unload Me
End Sub

Danke und Gruß
Ingo
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Select Case mit Optionbutton
19.10.2006 12:33:16
Hoffi
Hallo,
kann ja auch nicht funktionieren, weil die Variable Ansprechpartner leer ist, wenn Du denn Button drückst.
Außerdem kann Dein Code nicht funktionieren...
Versuchs mal so:

Private Sub cmd_Click()
Dim Ansprechpartner As String
Select Case opt1.Value
Case True
Ansprechpartner = "Herr xyz"
Case False
Select Case opt2.Value
Case True
Ansprechpartner = "Frau abc"
Case False
MsgBox "Bitte wählen Sie einen Ansprechpartner aus", vbCritical
End Select
End Select
ActiveCell.Offset(0, 1) = Ansprechpartner
Unload Me
End Sub

Grüße
Hoffi
Anzeige
AW: Select Case mit Optionbutton
19.10.2006 13:04:53
Ingo
Hallo Hoffi,
danke für die schnelle Hilfe. Leider stehen mir nicht nur zwei Optionsfelder zur Verfügung, sondern 23, habe nur zwei in die Ausgangsfrage geschrieben, damit es nicht zu unübersichtlich wird. Bislang hatte ich für jede der Optionsmöglichkeiten in diesem Frame eine eigene Prozedur:

Private Sub opt_AP5_Click()
Ansprechpartner = "Frau AP5"
End Sub

... und das 23mal :-)
Durch die Case true-Verschachtelung wird es nicht wirklich weniger. Gibt es da noch eine andere Möglichkeit?
Hinzu kommt, dass ich mehrere Frames mit Optionsbuttons habe, so dass ich nicht jedesmal einen zusätzlichen Commandbutton pro Vorgang einsetzen möchte.
Danke und Gruß Ingo
Anzeige
AW: Select Case mit Optionbutton
19.10.2006 13:33:36
Hoffi
Hallo,
Du könntest den OptionButtons einen Gruppennamen geben und dann den Status der einzelen OptionButtons im Select case abfragen, aber wie das geht, kann ich Dir leider nicht sagen. In VB6 geht das einfacher über die Index Eigenschaft und da programmiere ich häufiger als in VBA.
Stelle die Frage deshalb auf offen.
Grüße
Hoffi
Anzeige
AW: Select Case mit Optionbutton
21.10.2006 15:46:17
Daniel
Hallo
warum den Ansprechpartner über Option-Buttons auswählen?
eine List-Box ist dazu doch viel besser geeignet.
Und mit ein bisschen rumspielen in den Eingenschaften kann man auch eine Listbox dazu bekommen, daß sie aussieht wie ein Sammlung von Option-Buttons
Gruß, Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit Select Case und Optionbuttons in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Select Case-Struktur in einer Excel VBA-Anwendung mit Optionbuttons effizient zu nutzen, gehe wie folgt vor:

  1. Erstelle ein UserForm: Füge ein UserForm in deinem Excel-Projekt hinzu.
  2. Füge Optionbuttons hinzu: Platziere mehrere Optionbuttons auf dem UserForm. Gib ihnen eindeutige Namen, z. B. opt_AP1, opt_AP2, usw.
  3. Füge einen Commandbutton hinzu: Dieser Button wird verwendet, um die Auswahl zu bestätigen.
  4. Implementiere die Select Case-Struktur: Verwende den folgenden Beispielcode, um die Auswahl der Optionbuttons zu verwalten:
Private Sub cmd_Click()
    Dim Ansprechpartner As String
    Select Case True
        Case opt_AP1.Value
            Ansprechpartner = "Herr xyz"
        Case opt_AP2.Value
            Ansprechpartner = "Frau abc"
        Case Else
            MsgBox "Bitte wählen Sie einen Ansprechpartner aus", vbCritical
    End Select
    ActiveCell.Offset(0, 1) = Ansprechpartner
    Unload Me
End Sub
  1. Teste die Anwendung: Klicke auf den Commandbutton und prüfe, ob die Zelle entsprechend aktualisiert wird.

Häufige Fehler und Lösungen

  • Fehler: Leere Variable
    Wenn die Variable Ansprechpartner leer bleibt, stelle sicher, dass die Optionbuttons korrekt benannt sind und dass eine Auswahl getroffen wurde, bevor der Commandbutton gedrückt wird.

  • Fehler: Unklarheit bei der Fallunterscheidung
    Achte darauf, die Select Case-Struktur richtig zu verwenden. Anstelle von Case Is = opt_AP1_Click() solltest du Case opt_AP1.Value verwenden.

  • Fehler: Mehrere Optionbuttons
    Wenn du viele Optionbuttons hast, kann die Struktur unübersichtlich werden. Überlege, ob du die Verwendung von Select Case optimieren kannst.


Alternative Methoden

Anstelle von Optionbuttons kannst du auch eine Listbox verwenden, um die Auswahl der Ansprechpartner zu erleichtern. Eine Listbox kann eine übersichtlichere Benutzeroberfläche bieten und ermöglicht es, mehrere Optionen einfacher zu verwalten. Hier ein einfaches Beispiel:

Private Sub cmd_Click()
    Dim Ansprechpartner As String
    Ansprechpartner = ListBox1.Value
    If Ansprechpartner = "" Then
        MsgBox "Bitte wähle einen Ansprechpartner aus", vbCritical
    Else
        ActiveCell.Offset(0, 1) = Ansprechpartner
    End If
    Unload Me
End Sub

Praktische Beispiele

Wenn du 23 Optionbuttons hast, kannst du die Verwendung von Select Case oder For Each in Kombination mit den Optionbuttons in Betracht ziehen. Hier ist ein Beispiel zur Veranschaulichung:

Private Sub cmd_Click()
    Dim Ansprechpartner As String
    Dim ctrl As Control

    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "OptionButton" And ctrl.Value = True Then
            Ansprechpartner = ctrl.Caption
            Exit For
        End If
    Next ctrl

    If Ansprechpartner = "" Then
        MsgBox "Bitte wählen Sie einen Ansprechpartner aus", vbCritical
    Else
        ActiveCell.Offset(0, 1) = Ansprechpartner
    End If
    Unload Me
End Sub

Tipps für Profis

  • Verwende vba select case and: Mit dieser Technik kannst du mehrere Bedingungen innerhalb einer Select Case-Struktur kombinieren, um die Logik zu verfeinern.

  • Nutze vba select case like: Damit kannst du Mustervergleiche in deinen Bedingungen durchführen, was besonders nützlich ist, wenn du mit ähnlichen Namen oder Codes arbeitest.

  • Optimierung der Benutzeroberfläche: Stelle sicher, dass dein UserForm klar strukturiert ist, um die Benutzerfreundlichkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie viele Optionbuttons kann ich verwenden?
Es gibt keine feste Obergrenze, aber eine große Anzahl kann die Benutzeroberfläche unübersichtlich machen. Überlege, ob eine Listbox eine bessere Lösung wäre.

2. Kann ich Select Case auch in anderen Programmiersprachen verwenden?
Ja, viele Programmiersprachen unterstützen eine ähnliche Struktur, z. B. switch case in Java oder C#.

3. Was ist der Vorteil von Select Case gegenüber If...Else?
Select Case ist oft übersichtlicher und kann in Fällen mit vielen Bedingungen die Lesbarkeit des Codes verbessern.

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