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

OptionButton.Value auf True

Forumthread: OptionButton.Value auf True

OptionButton.Value auf True
05.05.2003 14:02:17
Mike E.
Hallo zusammen,


ich habe eine UserForm mit einer Comboox und 2 OptionButtons.
Je nach dem, welchen Buton ich anwähle, wird dabei ein bestimmter Bereich einer Tabelle in die ComboBox eingelesen.

Folgenden Code habe ich z.B. Button1 zugewiesen:

Unload Me
Call EinlesenBereich1
UserForm1.Repaint
OptionsButton1.Value = True


Egal, wo ich "OptionsButton1.Value = True" setze: der Button bleibt seaktieviert. Das Einlesen funktioniert aber ganz prima.

Wo muss ich "OptionsButton1.Value = True" setzen, damit entsprechender Button auch mit dem üblichen schwarzen Punkt gefüllt ist?

Vielen Dank und viele Grüße
Mike

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: OptionButton.Value auf True
05.05.2003 14:11:17
Nike

Hi,

mach mal dein Repaint nach dem true...

Bye

Nike

Re: OptionButton.Value auf True
05.05.2003 14:52:40
Mike E.

Hi Nike,

da tut sich leider auch nichts.

Trotzdem: vielen Dank

Viele Grüße
Mike

Re: OptionButton.Value auf True
05.05.2003 14:59:02
Nike

Hi,

dann poste mal den gesamten Code in
seiner kompletten Reihenfolge...

Bye

Nike

Anzeige
Re: OptionButton.Value auf True
05.05.2003 15:08:16
Mike E.

Hallo Nike,

das will ich tun:

CommadButton auf Worksheet(1):


Private Sub CommandButton1_Click()

UserForm1.Show

If UserForm1.AA.Value = True Then dAA
If UserForm1.BB.Value = True Then dBB

End Sub

Makros, die nach Anklicken entsprechender OptionsButtons ausgeführt werden:

Sub dAA()

Dim zeile As Integer
Dim Zeile2 As Integer

For zeile = 1 To 3000
UserForm1.ComboBox1.AddItem ActiveSheet.Cells(zeile, 1)
Next

End Sub

______

Sub dBB()

Dim zeile As Integer
For zeile = 500 To 510
UserForm1.ComboBox1.AddItem ActiveSheet.Cells(zeile, 1)
Next

End Sub


und letzlich, die den OptionsButtons zugewiesenen Codes:

Private Sub AA_Click()

Unload Me
Call dAA
AA.Value = True
UserForm1.Show

End Sub

Private Sub BB_Click()

Unload Me
Call dBB
UserForm1.Show
BB.Value = True

End Sub

Das war alles...

Viele Grüße
Mike




Anzeige
Re: OptionButton.Value auf True
05.05.2003 15:24:16
Nike

Hi,

was passiert denn bei dem Call dBB?
und warum unload me, wenn du in der Tabellen UF bist?

Bye

Nike

Re: OptionButton.Value auf True
05.05.2003 15:34:24
Mike E.

Hallo Nike,

dBB (blöder Name...):

dort wird ein bestimmter Bereich, nämlich die Cells(500...bis 510,1) in die ComboBox1 eingelesen.

Zur zweiten Frage:

die UserForm1 wird mittels CommandButton1 des Worksheets(1) aktiviert.
Ich nutze "Unload Me", um die ComboBox1 der UserForm zu aktualisieren, nachdem einer der OptionButtons angewählt wurde; es kann ja sein, dass der Anwender irrtümlicherweise einen falschen OptionButton anwählt und dies im Nachgang korrigiert. Es muss dann ja die ComboBox zunächst wieder gelehrt werden, um sodann die richtigen Werte anzuzeigen.

Huh...ich hoffe, das ist einigermaßen verständlich.

Viele rüße
Mike

Anzeige
Re: OptionButton.Value auf True
05.05.2003 15:53:38
Nike

Hi,
mit Formularen in Wkb`s hab ich`s nicht so ;-)

Versuche mal:
worksheets(1).OptionsButton1.Value = True

Bye

Nike

Re: OptionButton.Value auf True
06.05.2003 11:58:14
Mike E.

Hi Nike,

bin erst jetzt wieder online.

Danke für deine Tipps!

Viele Grüße
Mike

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

OptionButton.Value in Excel VBA richtig setzen


Schritt-für-Schritt-Anleitung

Um den Value eines OptionButton in Excel VBA korrekt zu setzen, folge diesen Schritten:

  1. UserForm erstellen: Erstelle eine UserForm mit mindestens zwei OptionButtons und einer ComboBox.
  2. Code für die OptionButtons schreiben: Füge den folgenden Code in das Codefenster deiner UserForm ein:
Private Sub AA_Click()
    Unload Me
    Call dAA
    AA.Value = True
    UserForm1.Show
End Sub

Private Sub BB_Click()
    Unload Me
    Call dBB
    UserForm1.Show
    BB.Value = True
End Sub
  1. Makros zum Einlesen der Daten: Implementiere die Subroutinen dAA und dBB, um die Daten in die ComboBox einzulesen:
Sub dAA()
    Dim zeile As Integer
    For zeile = 1 To 3000
        UserForm1.ComboBox1.AddItem ActiveSheet.Cells(zeile, 1)
    Next
End Sub

Sub dBB()
    Dim zeile As Integer
    For zeile = 500 To 510
        UserForm1.ComboBox1.AddItem ActiveSheet.Cells(zeile, 1)
    Next
End Sub
  1. Den CommandButton implementieren: Füge einen CommandButton auf deinem Arbeitsblatt hinzu und implementiere den folgenden Code:
Private Sub CommandButton1_Click()
    UserForm1.Show
    If UserForm1.AA.Value = True Then dAA
    If UserForm1.BB.Value = True Then dBB
End Sub
  1. Testen: Starte die UserForm und teste die OptionButtons. Achte darauf, dass der Value der OptionButtons korrekt gesetzt wird.

Häufige Fehler und Lösungen

  • Button bleibt nicht ausgewählt: Stelle sicher, dass du die Zeile OptionButton1.Value = True nach dem Unload Me in den Click-Events der OptionButtons setzt.
  • ComboBox wird nicht aktualisiert: Wenn die ComboBox nicht aktualisiert wird, überprüfe, ob du Unload Me vor dem Einlesen der Daten verwendest. Es sollte immer nach dem Value gesetzt werden.
  • Falscher Zugriff auf OptionButton: Vergewissere dich, dass du den richtigen Bezug auf die UserForm und die OptionButtons hast, z.B. Worksheets(1).OptionButton1.Value = True.

Alternative Methoden

Wenn du eine andere Methode zur Steuerung der OptionButtons verwenden möchtest, kannst du auch die Enable-Eigenschaft nutzen, um die Buttons zu deaktivieren oder zu aktivieren, anstatt ihren Wert zu setzen. Dies kann nützlich sein, um die Auswahl zu steuern:

OptionButton1.Enabled = False ' Deaktiviert den Button
OptionButton1.Enabled = True  ' Aktiviert den Button wieder

Praktische Beispiele

Ein einfaches Beispiel zur Verwendung von OptionButtons in einer UserForm:

Private Sub AA_Click()
    ' Setzt den Wert des OptionButtons AA
    AA.Value = True
    ' Daten einlesen
    Call dAA
End Sub

In diesem Beispiel wird der Value des OptionButton AA gesetzt und anschließend die Methode zum Einlesen der Daten aufgerufen.


Tipps für Profis

  • Nutze die OptionButton-Gruppe, um mehrere Buttons zu gruppieren. So kannst du sicherstellen, dass immer nur einer der Buttons gleichzeitig ausgewählt werden kann.
  • Verwende With-Blöcke, um deinen Code übersichtlicher zu gestalten:
With UserForm1
    .AA.Value = True
    .ComboBox1.Clear
    Call dAA
End With

FAQ: Häufige Fragen

1. Wie kann ich den Wert eines OptionButton in einer anderen Subroutine abfragen?
Du kannst den Wert des OptionButton direkt abfragen, indem du den Namen des OptionButtons verwendest, z.B. If UserForm1.AA.Value = True Then.

2. Warum funktioniert mein Code nicht, wenn ich Unload Me vor dem Setzen des Value verwende?
Das Unload Me schließt die UserForm, bevor die Werte gesetzt werden können. Stelle sicher, dass du Unload Me nach dem Ändern des Wertes aufrufst, um sicherzustellen, dass der Value korrekt angezeigt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige