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
1308to1312
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
Optionsfelder gruppieren und auswerten
19.04.2013 08:46:51
Jonas
Hallo zusammen,
ich habe ein Problem mit Optionsfeldern bei Excel.
In meiner Datei soll eine Befragung durchgeführt werden. Hierzu sollen mehrere Gruppen mit je 5 Optionsfeldern erstellt werden. Der Befragte setzt dann seine Markierung in die gewünschte Position von "Zufrieden" bis "Nicht zufrieden" in 5 Unterteilungen. Das Forumular ist in 5 Teilbereiche gegliedert. Jeder Teilbereich besitzt drei Optionsgruppen. Die Ergebnisse der drei Optionsfeldgruppen sollen dann gemittelt werden und in einem bedingt Formatierten Kästchen graphisch dargestellt werden. Die Ergebnisse der 5 Teilbereiche sollen anschließend nochmals gemittelt und graphisch dargestellt werden.
Mein erstes Problem ist die Gruppierung von Optionsfeldern. Hierfür verwende ich das mittlerweile das Marko von Josef Ehrensberger aus folgendem Thread:
https://www.herber.de/forum/archiv/732to736/735084_Optionsfelder_vervielfaeltigen.html
Exakter Link zum Makro:
https://www.herber.de/bbs/user/31240.xls
Das Makro funktioniert sehr gut, wenn ich immer nur eine Gruppe von Optionsfeldern erstelle. Leider kenne ich mich nicht allzu gut mit VBA aus und kann das Makro daher nicht an meine Bedürfnisse anpassen.
Ich hätte es gerne so vereinfacht, dass ich alle 15 Gruppen gleichzeitig erstellen kann. Hierfür stelle ich mir vor, dass man dem Makro die Zelle (gerne auch Zeile und Spalte getrennt) übergibt, in der eine Gruppe von Optionsfeldern beginnen soll und die Anzahl der benötigten Felder.
Somit wären alle Optionsfelder in einem Rutsch erstellt.
Für die Auswertung dachte ich an eine Zelle pro Optionsfeldgruppe, in der das Ergebnis angezeigt wird. Am besten von 5(Zufrieden) nach 1(Nicht zufrieden).
Das Mitteln der drei Werte durch eine Mittelwert-Matrixformel und bedingter Formatierung habe ich bereits geschafft.
Anbei hänge ich die Datei, die ich bisher erstellt habe. Ich hoffe, mir kann jemand helfen :-)
https://www.herber.de/bbs/user/84945.xlsm
Vielen Dank
Jonas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Optionsfelder gruppieren und auswerten
19.04.2013 09:00:31
Jonas
Nochmal ich...
Ich habe gerade versucht, das Dokument mit Hilfe des Makros "MakeOptionButtons" von Josef Ehrensberger zu erstellen. Da ich das Makro nicht komplett verstehe, habe ich versucht immer eine Zeile zu erstellen und dann die Ausgangswerte zu ändern und die nächste Zeile erstellen. Hierbei löscht das Makro dann die vorher erstellte Zeile.
Toll wäre ein Makro, das direkt alle Zeilen erstellen kann, alternativ reicht eines, mit dem ich immer Zeilenweise erstelle (sind ja nur 15). Wichtig ist, das die Auswertung der Gruppen funktioniert.
Vielen Dank und Grüße
Jonas

Anzeige
AW: Optionsfelder gruppieren und auswerten
19.04.2013 09:44:28
Jonas
Um meinen bisherigen Monolog weiterzuführen, hier der aktuelle Stand:
Ich habe im Makro die Zeile
 If TypeName(objOpt.Object) = "OptionButton" Then objOpt.Delete

entfernt.
Ich gehe davon aus, dass hier das komplette Dokument auf bestehende Optionsfelder getestet wird und diese dann gelöscht werden.
Jetzt sollte ich einzeilige Optionsfeldgruppen erstellen können.
Vielleicht hat dennoch jemand eine Idee, wie man das Makro auf meine Bedürfnisse zuschneiden könnte.
Gruß
Jonas

AW: Optionsfelder gruppieren und auswerten
19.04.2013 09:52:19
fcs
Hallo Jonas.
hier das Makro unter Tabellenblatt "Lessons Learned" mit entsprechenden Anpassungen.
Gruß
Franz
Option Explicit
'Diese Angaben anpassen!
Const lngStart As Long = 1          '  Startzeile
Const lngRowCount As Long = 3     '  Anzahl Zeilen
Const intStart As Integer = 14       '  Startspalte
Const intCount As Integer = 5      '  Buttons pro Zeile
Const intOffset As Integer = 9     '  Abstand letzter Button > Ausgabezelle
Public Sub MakeOptionButtons()
Dim objOpt As OLEObject
Dim lngRow As Long, lngIndex As Long, lngMax As Long
Dim intCol As Integer
On Error GoTo ErrExit
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
.Cursor = xlWait
End With
'vorhandenen Buttons löschen
For Each objOpt In Me.OLEObjects
If TypeName(objOpt.Object) = "OptionButton" Then objOpt.Delete
Next
For lngRow = lngStart To Cells(Rows.Count, 1).End(xlUp).Row Step 8
For lngIndex = 1 To lngRowCount
For intCol = intStart To intStart + intCount - 1
Set objOpt = Me.OLEObjects.Add(ClassType:="Forms.OptionButton.1", _
Left:=Cells(lngRow + lngIndex, intCol).Left + 3, Top:=Cells(lngRow + lngIndex,  _
intCol).Top + 3, _
Width:=12#, Height:=12#)
With objOpt
.Object.Caption = intCol - intStart + 1
.Object.BackColor = Cells(lngRow, intCol).Interior.Color
.Object.GroupName = Me.Name & "_Grp" & lngRow + lngIndex
.LinkedCell = Cells(lngRow + lngIndex, intCol).Address
.Object.Value = IIf(intCol = intStart, True, False)
End With
Cells(lngRow + lngIndex, intCol).NumberFormat = ";;;"
Next
Cells(lngRow + lngIndex, intStart + intCount + intOffset - 1).FormulaR1C1 = _
"=MATCH(TRUE,RC[-" & intCount + intOffset - 1 & "]:RC[-" & intOffset & "],0)"
Next lngIndex
Next lngRow
ErrExit:
If Err.Number > 0 Then
MsgBox Err.Number & vbLf & Err.Description, , "Fehler"
Err.Clear
End If
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
.Cursor = xlDefault
End With
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige