Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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

UF OptionButton Gruppe prüefen

UF OptionButton Gruppe prüefen
06.08.2018 14:13:48
Sigi
Hallo,
die Prüfung ob ein OptionButton in einer Gruppe wahr ist funktioniert leider nicht.
In beiliegender Mappe auch noch eine andere Variante die leider auch nicht die Lösung bringt.
Danke, für Eure Hilfe!
Gruß
Sigi
https://www.herber.de/bbs/user/123165.xlsm
Private Sub CommandButton1_Click()
With U1
bytZaehler = 0
For Each cb In .Controls
Select Case TypeName(cb)
Case "OptionButton"
If Left(cb.Name, 8) = "optStamm" And cb.GroupName = "KD" Then
lxl = 0
For lol = 1 To 2
If cb.Value = True Then
lxl = lxl + 1
End If
Next
End If
If lxl = 0 Then
sTeilName = "Kundengruppe"
GoTo msg
End If
If Left(cb.Name, 8) = "optStamm" And cb.GroupName = "P" Then
lxl = 0
For lol = 1 To 2
If cb.Value = True Then
lxl = lxl + 1
End If
Next
End If
If lxl = 0 Then
sTeilName = "Privatgruppe"
GoTo msg
End If
End Select
Next cb
If lxl = 2 Then GoTo 0
msg:
MsgBox "Sie haben in der Gruppe " & sTeilName & " nichts ausgewählt"
End With
0 End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF OptionButton Gruppe prüefen
06.08.2018 14:38:02
Daniel
Hi
wenn du das Leben einfach haben willst, ersetze jede Optionbuttongruppe durch eine List- oder Combobox.
Zu dieser fragst du einfach den ListIndex ab, dieser muss größer als -1 sein.
Gruß Daniel
AW: UF OptionButton Gruppe prüefen
06.08.2018 14:45:45
Hajo_Zi
warum soviel Code?
Private Sub CommandButton1_Click()
With U1
bytZaehler = 0
sTeilName = ""
For Each cb In .Controls
Select Case TypeName(cb)
Case "OptionButton"
If cb = True Then
'                        If Left(cb.Name, 8) = "optStamm" And cb.GroupName = "KD" Then
'                            lxl = 0
sTeilName = cb.Caption
'                            For lol = 1 To 2
'                                If cb.Value = True Then
'                                    lxl = lxl + 1
'                                End If
'                            Next
'                        End If
'                        If lxl = 0 Then
'                            sTeilName = "Kundengruppe"
'                            Exit For
'                        End If
'                        If Left(cb.Name, 8) = "optStamm" And cb.GroupName = "P" Then
'                            lxl = 0
'                            For lol = 1 To 2
'                                If cb.Value = True Then
'                                    lxl = lxl + 1
'                                End If
'                            Next
'                        End If
'                        If lxl = 0 Then
'                            sTeilName = "Privatgruppe"
'                            Exit For
'                        End If
End If
End Select
Next cb
If sTeilName  "" Then
MsgBox "Sie haben in der Gruppe " & sTeilName & " nichts ausgew?hlt"
End If
End With
End Sub
Falls Du was anderes ausgeben willst arbeite mit der Eigenschaft "Tag"

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: UF OptionButton Gruppe prüefen
06.08.2018 16:19:26
Sigi
Hallo,
leider hilft mir beides nicht.
Ist es nicht möglich die Group-Eigenschaften der OptionButton abzufragen ob einer von beiden ausgewählt ist.
Ich möchte wissen welche Gruppe nicht ausgewählt wurde.
Die Tag.Eigenschaft ist schon belegt.
Es gibt 10 verschiedene Gruppen.
Danke!
Gruß
Sigi
AW: UF OptionButton Gruppe prüefen
06.08.2018 16:46:12
Hajo_Zi
Hallo Sigi,
Du sprichts also nicht von der verlinkten Datei in der Tag nicht belegt ist. Lese den Groupname aus.
Ich bin dann raus, da ich nicht auf fremde Rechner schaue.
Gruß Hajo
Anzeige
AW: UF OptionButton Gruppe prüefen
06.08.2018 17:08:49
Sigi
Hallo,
nun nochmal ein paar Ansätze von mir die beide nicht funktionieren.
Wo liegt der Fehler?
Danke!
Gruß
Sigi
Private Sub CommandButton4_Click()
Dim arr()  As Variant
bytZaehler = 0
For Each cb In U1.Controls
Select Case TypeName(cb)
Case "OptionButton"
arr = Array("optStamm_ZahlvorText", "optStamm_ZahlnachText")
For lol = 0 To UBound(arr)
If cb(arr(lol)).Value = False Then bytZaehler = bytZaehler + 1
Next lol
End Select
Next cb
If bytZaehler = 2 Then
MsgBox "fehler"
End If
End Sub

Private Sub CommandButton1_Click()
With U1
bytZaehler = 0
For Each cb In .Controls
For lol = 1 To 2
If TypeName(cb) = "OptionButton" And cb.GroupName = "KD" And cb.Value = false Then
bytZaehler = bytZaehler + 1
End If
Next
If bytZaehler = 2 Then
sTeilName = "Kunden"
GoTo msg
End If
Next cb
msg:
MsgBox "Sie haben in der Gruppe " & sTeilName & " nichts ausgewählt"
End With
0 End Sub

Anzeige
AW: UF OptionButton Gruppe prüefen
06.08.2018 18:12:15
Daniel
Hi
probiers mal mit diesem Code.
Vorteil ist, dass du im Code die Gruppennamen nicht mehr explizit aufführen musst, sondern diese unabhängig von der Anzahl automatisch ermittelt werden.
Nachteil ist, dass du dich, um diesen Code zu verstehen, mit dem Objekt "Dictionary" auseinandersetzen solltest (was aber kein Hexenwerk ist und extrem hilfreich beim Programmieren)
Private Sub CommandButton1_Click()
Dim crt As Control
Dim grp As Variant
Dim Gruppen As Object
Dim Erg As String
Set Gruppen = CreateObject("Scripting.Dictionary")
For Each crt In Me.Controls
If TypeName(crt) = "OptionButton" Then
grp = crt.GroupName
If Gruppen.exists(grp) Then
If crt.Value = True Then Gruppen(grp) = True
Else
Gruppen(grp) = crt.Value
End If
End If
Next
For Each grp In Gruppen.keys
If Not Gruppen(grp) Then Erg = Erg & vbLf & grp
Next
If Erg = "" Then
MsgBox "Alle Optionbuttongruppen ausgefüllt"
Else
MsgBox "Folgene Optionbuttongruppen müssen noch ausgewählt werden:" & Erg
End If
End Sub
Getestet mit deiner Beispieldatei.
Gruß Daniel
Anzeige
AW: UF OptionButton Gruppe prüefen
06.08.2018 19:15:39
Sigi
Hallo Daniel,
vielen Dank, genauso habe ich es mir vorgstellt.
Wenn ich CreateObject("Scripting.Dictionary") richtig verstehe machst Du aus der Group.Eigenschaft eine Art Array und fragst dann den Zustand der OptButton ab.
Ist die Eigenschaft in diesem Array gegen (wahr) dann suchst Du die nächste Gruppe.
Mit In Gruppen.keys prüft man ob die Eigenschaften nicht erfüllt sind.
Ich könnte das z.B auch auf andere Steuerelemente übertragen, für Combo und Textboxen wenn ich die
Tag.eigenschaft "Eingaben" für alle Elemente setzen und dann prüfen lasse ob diese ausgefüllt sind.
Muß mich aber noch näher damit befassen.
Hast mir einen Super- Denkanstoss gegeben.
Gruß
Sigi
Anzeige
AW: Vergessen Kontrollkästen zu deaktivieren o.T
06.08.2018 22:02:48
Sigi
.
AW: UF OptionButton Gruppe prüefen
07.08.2018 09:51:38
Daniel
Hi
ein Dictionary ist im Prinzip ein eindimensionales Array mit einem Freitext-Index.
dh ich erstelle ein Array, bei dem jede Gruppe einen Index bekommt, dieser ist der Gruppenname.
Wenn ein Button den Wert WAHR hat, schreibe ich dieses WAHR in seinen Index.
Ist der Wert FALSCH, verändere ich den Index nicht, dh ein einmal eingetragenes WAHR bleibt erhalten.
lediglich wenn der Gruppenname das erste mal auftaucht, wird WAHR oder FALSCH in den Index geschrieben, damit dieser überhaupt erstellt wird.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige