443 Aufrufe
Gefragt in Tabellenkalkulation von robbi58 Mitglied (966 Punkte)
wieder getaggt von halfstone

Ich habe einen Test mit Option Buttons mit 10 Fragen (jeweils drei Optionen zur Auswahl) mit der activex-toolbar zusammengestellt. Unter dem "CommandButton" Ergebnis erscheint die Summe der erreichten Punkte (dies geschieht mit Klick auf eine beliebige Zelle und leider mit einiger zeitlicher Verzögerung; der Wert wird aus dem orangen Feld - hier H22) übernommen; dieses Feld wird später ausgeblendet).
Ich habe zwei Fragen:

(1) Ich möchte erreichen, dass das Ergebnis nur bei Klick auf diesen Button angezeigt wird, ansonsten soll das Feld leer bleiben).

(2) Ich möchte mit Klick auf den CommandButton mit dem Namen "Neu" die Option-Felder leeren, da ansonsten die Häckchen stehen bleiben.

Ich muss gestehen, dass ich mich erst seit drei Tagen mit activex-Steuerelementen beschäftige und das, was ich bisher umgesetzt habe, nur aus den entsprechenden Foren entnommen habe. Aber hier war Endstation.

Ich wäre um einen hilfreichen Rat sehr dankbar.

Robert

4 Antworten

+2 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Robert,

ich hoffe ich habe dich richtig verstanden.

Das Ergebnis kannst du auf dem CommandButton (hier CommandButton1) wie folgt darstellen:

Private Sub CommandButton1_Click()

CommandButton1.Caption = ActiveSheet.Range("H22")

End Sub

Ich gehe mal davon aus, dass sich das alles im selben Arbeitsblatt abspielt. Für den CommandButton "Neu" (hier im Beispiel CommandButton2) probiere mal den folgenden Code:

Private Sub CommandButton2_Click()
Dim obj As Object

CommandButton1.Caption = "Dein Ergebnis"
 
For Each obj In ActiveSheet.OLEObjects
    If Left(obj.Name, 12) = "OptionButton" Then obj.Object.Value = False
Next obj

End Sub

Damit wird auch gleichzeitig die Beschriftung für den Button "Dein Ergebnis" zurückgesetzt. Die OptionButtons werden über eine Schleife angesprochen und alle auf Falsch (=Leer) gesetzt.

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)
Hallo M.O.!

Zunächst recht herzlichen Dank für die rasche Antwort. Die Lösung mit Button 1 funktioniert super, nur das Leeren der OptionsButtons bzw. das Entfernen der Häckchen funktioniert nicht. Liegt es vielleicht daran, dass ich bei den OptionsButtons die Namen verändert habe (z. B. "Frage1a" für "OptionButton5", "Frage1b",...). Damit erkennt das System nicht  

If Left(obj.Name, 12) = "OptionButton" Then obj.Object.Value = False

den Begriff "OptionButton".

Wie gesagt, ich bin blutiger Anfänger und muss mich erst langsam in die Befehle einarbeiten.

Danke im Voraus M. R.
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)
ausgewählt von halfstone
 
Beste Antwort

Hallo Robert,

wenn du den Namen der Optionbuttons geändert hast, musst du auch die IF-Abfrage ändern, wie du richtig erkannt hast smiley:

If Left(obj.Name, 5) = "Frage" Then obj.Object.Value = False

Gruß

M.O.

0 Punkte
Beantwortet von robbi58 Mitglied (966 Punkte)

Perfekt!

Jetzt funktioniert die Zurücksetzung.

Nochmals recht herzlichen Dank. Jetzt kann ich die SchülerInnen mit meinen Abfragen nerven. devil

Robert

...