Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen

Schleife für OptionButtons

Betrifft: Schleife für OptionButtons von: Louis
Geschrieben am: 09.12.2015 12:11:31

Hallo,

ich habe folgendes Problem:

Formular:

3a) "Frage":
O niedrig
O mittel
O hoch

...

3d) "Frage":
O niedrig
O mittel
O hoch

Ergebnisfeld: ________________

Also 4 Fragen mit insgesamt 3x4 =12 Antwortmöglichkeiten. Ich möchte nun eine Formel bzw Schleife (For? ) bauen die prüft ob mindestens 3 der 4 fragen mit "mittel" oder "hoch" beantwortet wurden. Wenn dies der Fall ist soll im Ergebnisfeld Antwort1 sonst Antwort2 angezeigt werden.

Ich habe bereits die Caption der Optionfelder dementsprechend in niedrig,mittel oder hoch gesetzt.
--------------------------
Mein Code bislang:

Dim anzahl As Integer
anzahl = 0
For i = 1 To 12
If (ActiveSheet.OLEObjects("OptionButton" & i).Object.Caption = "Normal" Or ActiveSheet.OLEObjects("OptionButton" & i).Object.Caption = "Hoch") And ActiveSheet.OLEObjects("OptionButton ' Welcher Name kommt hier rein?" & i).Object.Value = True Then anzahl = anzahl + 1
Next i

If anzahl "größergleich" 3 Then
'hier diene Ausgabe rein
txt_antwort.value = "Antwort"
End If

------------------------------------

Vllt. ist es auch ein ganz falscher Ansatz.Ich erhalte jedes mal die Fehlermeldung
1004 das die ObjektEigenschaft von OLEObjects im Formular nicht gefunden werden kann..Ich denke die Schleife weiß nicht welche Buttons er kontrollieren soll?!

Danke für Eure Hilfe.

Gruß

Louis

  

Betrifft: AW: Schleife für OptionButtons von: EtoPHG
Geschrieben am: 10.12.2015 10:08:33

Hallo Louis,

z.B. so:

Sub OptionsTest()
    Dim oObj
    Dim iCnt As Integer
    
    For Each oObj In ActiveSheet.OLEObjects
        If oObj.progID Like "*.OptionButton.*" Then
            iCnt = iCnt + -(oObj.Object And _
                           (oObj.Object.Caption = "mittel" Or _
                            oObj.Object.Caption = "hoch"))
        End If
    Next oObj
    MsgBox IIf(iCnt < 3, "Nix Gut", "Mindestens 3"), , "Anzahl " & iCnt
End Sub
Gruess Hansueli


 

Beiträge aus den Excel-Beispielen zum Thema "Schleife für OptionButtons"