Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1460to1464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleife für OptionButtons

Schleife für OptionButtons
09.12.2015 12:11:18
Louis
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

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

Betreff
Datum
Anwender
Anzeige
AW: Schleife für OptionButtons
09.12.2015 12:17:59
Daniel
Hi
1. würde ich hier keine Optionbuttons einsetzen sondern Listboxen.
dann hast du nur noch 4 Steuerelemente und nicht 12.
2. definiere für diese Listboxen in einem freien Bereich der Tabelle eine Ausgabezelle definieren und die Ausgabezellen unter- oder nebeneinander platzieren.
3. prüfe dann mit ZählenWenn (worksheetfunction.countif) mit bezug auf diesen Zellbereich, wie oft welche Antwort gegeben wurde.
Gruß Daniel

AW: Schleife für OptionButtons
09.12.2015 12:34:37
Louis
Hallo Daniel,
danke für die schnelle Antwort. Ich würde dennoch das Problem gerne mit OptionButtons lösen da mein gesamtes Formular auf OptionButtons aufgebaut ist. Gibt es dafür eine Möglichkeit ?
Gruß
Louis

Anzeige
AW: Schleife für OptionButtons
09.12.2015 12:46:40
Daniel
Hi
was hast du denn für Optionbuttons?
eine Gruppe von Formularfeld-Optionbuttons funktioniert ja wie eine Listbox und du hast pro Gruppe eine Ausgabezelle, in welcher der Indexwert (Startindex 1) des gewählten Optionbuttons steht und du kannst wie oben beschrieben mit ZählenWenn ">=2" als Bedingung arbeiten.
wenn du ActiveX-Steuerelementbuttons hast, dann hast du für jeden Optionbutton eine Ausgabezelle, in welcher WAHR oder FALSCH steht.
diese Ausgabezellen kannst du dann so anordnen dass
niedrig in Zeile 1
mittel in Zeile 2
hoch in Zeile 3
ausgegeben wird (dh jede Gruppe in einer eigenen Spalte) und dann kannst du mit ZählenWenn(2:3;wahr)>=3 auswerten.
Gruß Daniel

Anzeige
AW: Schleife für OptionButtons
09.12.2015 12:57:21
Rudi
Hallo,
Sub yyy()
Dim anzahl As Integer, i As Integer, o As OLEObject
anzahl = 0
With ActiveSheet
For i = 1 To 12
Set o = .OLEObjects("OptionButton" & i)
anzahl = anzahl - ((o.Object.Caption = "Hoch" Or o.Object.Caption = "Normal") _
And o.Object.Value = True)
Next
End With
End Sub
Gruß
Rudi

AW: Schleife für OptionButtons
09.12.2015 15:13:34
Louis
Hallo Rudi,
bekomme immer in der OLEObject Liste wieder den Fehler.
Sub yyy()
Dim anzahl As Integer, i As Integer, o As OLEObject
anzahl = 0
With ActiveSheet
For i = 1 To 12
Set o = .OLEObjects("OptionButton" & i) 

Anzeige
AW: Schleife für OptionButtons
09.12.2015 15:23:18
Rudi
Hallo,
dann sind deine OptionButtons keine OptionButtons sondern Optionsfelder. Optionsfelder sind keine OLEObjecte.
versuchs so:
Sub yyy()
Dim anzahl As Integer, i As Integer, o As Object
anzahl = 0
With ActiveSheet
For i = 1 To 12
Set o = .Shapes("Option Button " & i).DrawingObject
anzahl = anzahl - ((o.Caption = "Hoch" Or o.Caption = "Normal") _
And o.Value = True)
Next
End With
End Sub

Gruß
Rudi

AW: Schleife für OptionButtons
09.12.2015 15:57:29
Louis
Sorry hatte nicht gewusst das dies einen Unterschied macht. Ich bin noch relativ neu in der VBA Programmierung.
Es klappt immer noch nicht ich bekomme die Fehlermeldung : Das Element mit dem angegebenen Namen wurde nicht gefunden...
'Vertraulich
If OptionButton1.Value Then
txt_vertraulichkeitsklasse.Value = "Vertraulich"
End If
Dim anzahl As Integer, i As Integer, o As Object
anzahl = 0
With ActiveSheet
For i = 1 To 12
Set o = .Shapes("OptionButton" & i).DrawingObject anzahl = anzahl - ((o.Caption = "hoch" Or o.Caption = "normal") And o.Value = True)
Next
If anzahl >= 3 Then
'txt_vertraulichkeitsklasse.Value = "Vertraulich"
End If
End With
'Öffentlich
If OptionButton2.Value Then
txt_vertraulichkeitsklasse.Value = "Öffentlich"
End If

Anzeige
AW: Schleife für OptionButtons
09.12.2015 16:28:29
Rudi
Set o = .Shapes("OptionButton" & i).DrawingObject <-----
du hast dich nicht an meine Angaben gehalten. Der Standardname eines Optionsfelds lautet z.B. "Option Button 1"
Ergo
Set o = .Shapes("Option Button " & i).DrawingObject
Ansonsten: Lade die Mappe hoch.
Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige