Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anzahl der Aktiven CheckBoxen in Userform ermittel

Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 14:18:19
Chris
Hallo Zusammen,
habe gerade folgendes Problem:
In einer Userform habe ich 6 Checkboxen. Nun möchte ich die Anzahl der aktiven Checkboxen ermitteln und dann die "Caption" der aktiven Checkboxen in eine Zelle schreiben.
Vielen Dank schon jetzt einmal für Eure schnelle Hilfe
Gruß
Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 14:40:55
Andi
Hi,
so?
For Each c In UserForm1.Controls
If TypeName(c) = "CheckBox" Then
If c.Enabled = True Then
zaehler = zaehler + 1
Worksheets("Tabelle1").Cells(zaehler, 1).Value = c.Caption
End If
End If
Next c
MsgBox CStr(zaehler) & " aktive Checkboxen"
Schönen Gruß,
Andi
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 15:21:20
Chris
Vielen Dank für Eure Hilfe.
Habe die einfache Version von Andi genommen, die dann auch gleich bei mir funktioniert hat!
Nochmals vielen Dank
Gruß
Chris
Gern geschehen... (mt)
20.09.2005 15:34:17
Andi
Hi Chris,
schön, dass es funktioniert; der Vollständigkeit wegen sei noch angemerkt, dass c als Control dimensioniert gehört, aber das hast Du Dir wahrscheinlich auch schon gedacht...
Schönen Gruß,
Andi
Anzeige
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 14:41:36
Heiko
Hallo Chris,
da hab ich was für dich, wenn es unbedingt die Caption sein muss dann diese Zeilen anpassen:
arrSetBoxes(inti) = chkBox.Name IN chkBox.Caption
' So 09.03.05 Funktion BoxCheck()
' Mit dieser Funktion wird gecheckt ob im angegebenen Objekt bzw. Gruppe befindliche
' Options/Kontrollfelder angewählt sind.
' Ist kein Options/Kontrollfeld gewählt gibt die Funktion ein leeres Datenfeld zurück.
' Ist ein Options/Kontrollfeld gewählt gibt die Funktion ein Datenfeld mit den Namen
' der gewählten Boxen zurück.
' Prüfen von Boxen auf einem kompletten Userforms ob was gewählt wurde.
' If VarType(BoxCheck(UserForm1)) = vbEmpty Then MsgBox "Nichts gewählt, nochmal !!!"
' Prüfen von Boxen nur innerhalb eines Rahmens.
' If VarType(BoxCheck(Frame1)) = vbEmpty Then MsgBox "Nichts gewählt, nochmal !!!"
' Prüfen von Boxen auf Tabellenblättern, es werden alle Boxen gecheckt die den angegebenen
' Gruppennamen haben. Es wird das aktive Tabellenblatt überprüft !
' Bei der Erstellung des tabellenblattes auf die richtige Vergabe der GroupName achten !
' If VarType(BoxCheck(, "Gruppe1")) = vbEmpty Then MsgBox "Nichts gewählt, nochmal !!!"
' Beispiel für Rückgabe der gewählten Boxen, bei Rahmen dito z.B. (BoxCheck(Rahmen1))
' Private Suub Test()
' Dim arrResult As Variant
' Dim inti As Integer
' arrResult = BoxCheck(, "Gruppe1")
' If VarType(arrResult) vbEmpty Then
' For inti = 0 To UBound(arrResult)
' MsgBox arrResult(inti)
' Next inti
' Else
' MsgBox " Es wurde nichts gewählt!"
' End If
' End Sub
' Aufruf wenn Funktion in der Personl.xls liegt.
' If VarType(Application.Run("PERSONL.xls!BoxCheck", Frame1)) vbEmpty Then
' If VarType(Application.Run("PERSONL.xls!BoxCheck", , Tabelle1 )) vbEmpty Then
' ******************************************************************************************* '

Function BoxCheck(Optional varObjekt As Variant, Optional strGruppe As String = "strDefault")
' Definition der Variablen.
Dim cltBox As Control
Dim objBox As OLEObject
Dim chkBox As MSForms.CheckBox
Dim optBox As MSForms.OptionButton
Dim arrSetBoxes As Variant
Dim inti As Integer: inti = 0
' Erster Teil für Rahmen in Userforms
' Wurde ein Objekt (Rahmen bzw. Userform) übergeben dann diesen Teil abarbeiten.
If IsMissing(varObjekt) = False Then
' Alle Objekt im angegebenen Bereich durchlaufen.
For Each cltBox In varObjekt.Controls
' Ist es eine Checkbox oder ein Optionbutton dann
If UCase(TypeName(cltBox)) = UCase("Checkbox") Or UCase(TypeName(cltBox)) = UCase("Optionbutton") Then
' Ist die Box angewählt dann
If cltBox.Value = True Then
' Im ersten Durchlauf das Array dimensionieren, so wird nur ein Array zurück-
' gegeben wenn auch was gewählt ist.
If inti = 0 Then ReDim arrSetBoxes(0)
' Datenfeld zur Aufnahme der gesetzten Boxen.
ReDim Preserve arrSetBoxes(inti)
arrSetBoxes(inti) = cltBox.Name
inti = inti + 1
End If
End If
Next
' Übergabe des Arrays an die Funktion.
BoxCheck = arrSetBoxes
Exit Function
End If
' Zweiter Teil für Gruppen auf Tabellenblättern
' Wurde eine Gruppe übergeben dann diesen Teil abarbeiten.
If strGruppe <> "strDefault" Then
' Alle Objekt im angegebenen Bereich durchlaufen.
For Each objBox In ActiveSheet.OLEObjects
' Ist es ein Optionbutton dann
If TypeName(objBox.Object) = "OptionButton" Then
' Damit der GroupName ausgewertet werden kann diesen Umweg.
Set optBox = objBox.Object
If optBox = True And optBox.GroupName = strGruppe Then
If optBox.Value = True Then
' Im ersten Durchlauf das Array dimensionieren, so wird nur ein Array
' zurückgegeben wenn auch was gewählt ist.
If inti = 0 Then ReDim arrSetBoxes(0)
' Datenfeld zur Aufnahme der gesetzten Boxen.
ReDim Preserve arrSetBoxes(inti)
arrSetBoxes(inti) = optBox.Name
inti = inti + 1
End If
End If
End If
If TypeName(objBox.Object) = "CheckBox" Then
Set chkBox = objBox.Object
If chkBox And chkBox.GroupName = strGruppe Then
If chkBox.Value = True Then
If inti = 0 Then ReDim arrSetBoxes(0)
' Datenfeld zur Aufnahme der gesetzten Boxen.
ReDim Preserve arrSetBoxes(inti)
arrSetBoxes(inti) = chkBox.Name
inti = inti + 1
End If
End If
End If
Next objBox
BoxCheck = arrSetBoxes
Exit Function
End If
MsgBox "Es wurde kein Rahmen oder Gruppenname angegeben!", vbCritical, " DIS 2005"
End Function

' ******************************************************************************************** '
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 15:23:02
Chris
Hallo Heiko,
Vielen Dank für Deine Hilfe.
Habe die einfache Version von Andi genommen, die dann auch gleich bei mir funktioniert hat! Werde mir jedoch auch Deinen Quellcode nochmal ansehen.
Nochmals vielen Dank
Gruß
Chris
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 14:44:49
{Boris}
Hi Chris,
gesteuert über einen Commandbutton:
Option Explicit

Private Sub CommandButton1_Click()
Dim myCtrl As Control, i As Byte, sTemp As String
For Each myCtrl In Me.Controls
If TypeOf myCtrl Is MSForms.CheckBox Then
If myCtrl.Value = True Then
i = i + 1
sTemp = sTemp & myCtrl.Caption & ", "
End If
End If
Next myCtrl
MsgBox i, , "Anzahl aktive Boxen:"
MsgBox sTemp, , "Captions der aktiven Boxen:"
End Sub

Grüße Boris
Anzeige
AW: Anzahl der Aktiven CheckBoxen in Userform ermittel
20.09.2005 15:24:48
Chris
Hallo Boris,
vielen Dank für Deine Hilfe.
Habe mittlerweile die Version von Andi getestet, die dann auch gleich bei mir funktioniert hat! Werde mir Deinen Code aber auch noch mal ansehen.
Nochmals vielen Dank
Gruß
Chris

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige