Informationen und Beispiele zum Thema OptionButton | |
---|---|
![]() |
OptionButton-Seite mit Beispielarbeitsmappe aufrufen |
![]() |
Betrifft: mehrer OptionButtons dynamisch erzeugen?!
von: Thomas
Geschrieben am: 13.09.2014 12:11:11
Hallo Ihr Profis,
nachdem die Idee mit dem SVerweis ja leider gestorben ist, brauch ich irgendwie eine Idee um folgendes Problem zu realisieren:
In Spalte A stehen bestimmte Hauptaufgaben. In Spalte B stehen Unteraufgaben davon, die mittels SVerweis aus Tabellenblatt2 geholt werden. Nun sollten eigentlich in Spalte C soviele OptionButtons sein wie es eben Unteraufgaben gibt, sodass man die Einzelaufgaben abhaken kann und wenn alle abgehakt sind färbt sich die entsprechende Zelle in Spalte A (Hauptaufgaben) grün. Die Anzahl der Unteraufgaben habe ich als Zahlenwert bereits realisiert. Diese steht (hilfsweise) in Spalte D in der entsprechenden Zeile. Nur diese in OptionButtons "umzuwandeln" krieg ich leider nicht hin.
Hat vielleicht jemand eine Idee wie das sonst realisierbar wäre? Irgendwie komm ich da nicht so richtig zu einer Lösung.
Vielen lieben dank im voraus.
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Hajo_Zi
Geschrieben am: 13.09.2014 12:13:37
ich würde ja mittels Doppelklick das machen. 1.048.576 Steuerelemente wären mir ein wenig viele.
http://hajo-excel.de/chCounter3/getfile.php?id=56
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Thomas
Geschrieben am: 13.09.2014 13:10:56
danke für die Idee, aber jede der Unteraufgaben hat 4 verschiedene Zustände die mittels der Optionsbuttons ausgewählt werden müssen. Das bedeutet, wenn es dort z.B. 3 Unteraufgaben gibt benötige ich 12 OptionButtons.
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Spenski
Geschrieben am: 13.09.2014 13:20:05
kannst du mal ne kleine bsp datei hochladen...kanns mir nur zu 80% vorstellen.
gruss
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Thomas
Geschrieben am: 13.09.2014 13:59:57
Im Anhang findest du eine Beispieldatei. Vielleicht hilft diese:
https://www.herber.de/bbs/user/92610.xlsx
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Spenski
Geschrieben am: 13.09.2014 15:32:17
bei der Beispiel Datei weiss ich noch weniger was du suchst und willst
viel erfolg noch
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Mullit
Geschrieben am: 14.09.2014 22:26:57
Hallo,
mit Formularsteuerelementen könnte man sich etwas bauen:
Für das Einfügen der Bed. Formatierung müsstest Du nochmal klären, bei welcher Opt.-Buttonwahl die Zelle rot werden soll...
Option Explicit Private Declare Function KillTimer Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal nIDEvent As Long) As Long Private Declare Function SetTimer Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) As Long Private Declare Sub Sleep Lib "kernel32" ( _ ByVal dwMilliSeconds As Long) Private lobjCell As Range Private lvntArray As Variant Public Function fncOptionBtn(prstrString As String, probjCell As Range) As String Set lobjCell = probjCell lvntArray = Split(Expression:=prstrString, Delimiter:=Chr(10), Limit:=-1, Compare:=vbTextCompare) Call prcStartTimer End Function Private Sub prcStartTimer() SetTimer Application.hWnd, 0&, 1&, AddressOf TimerProc End Sub Private Sub prcStopTimer() KillTimer Application.hWnd, 0& End Sub Private Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, _ ByVal uElapse As Long, ByVal lpTimerFunc As Long) On Error Resume Next Call prcStopTimer Call prcInsertButton End Sub Private Sub prcInsertButton() Dim lngIndex As Long, lngOptTop As Long, _ lngHeight As Long, lngWidth As Long, _ lngCount As Long, lngOptLeft As Long, _ lngGrpTop As Long, lngColumn As Long Dim shpShape As Shape If ActiveSheet.Shapes.Count > 0 Then For Each shpShape In ActiveSheet.Shapes With shpShape If .FormControlType = xlOptionButton Or .FormControlType = xlGroupBox Then _ If .TopLeftCell.Address = lobjCell.Address Then _ .Delete End With Next End If lngColumn = 5 lngHeight = 20 lngWidth = 20 lobjCell.RowHeight = (Ubound(lvntArray) + 1) * 25 + 5 For lngIndex = 1 To Ubound(lvntArray) + 1 lngColumn = lngColumn + 1 lngGrpTop = lngGrpTop + lngHeight + 5 lngOptLeft = 0 With lobjCell For lngCount = 1 To 4 lngOptLeft = lngOptLeft + 10 ActiveSheet.OptionButtons.Add(Left:=.Left + lngOptLeft, _ Top:=.Top + 5 + lngOptTop, Width:=lngWidth, Height:=lngHeight).LinkedCell = _ ActiveSheet.Cells(.Row, .Column + lngColumn).Address Next ActiveSheet.GroupBoxes.Add(Left:=.Left + 5, _ Top:=.Top + 5 + lngOptTop, Width:=4 * lngWidth, Height:=lngHeight).Caption = vbNullString End With lngOptTop = lngOptTop + 25 Next Set lobjCell = Nothing End Sub Public Sub prcInit() Dim lngIndex As Long For lngIndex = 1 To 4 ActiveSheet.Cells(2 + lngIndex, 3).FormulaLocal = _ "=fncOptionBtn(SVERWEIS(A" & 2 + lngIndex & ";Tabelle2!A$3:C$7;2;FALSCH);C" & 2 + lngIndex & ")" DoEvents Sleep 50& Next End SubVBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel
Code erstellt und getestet in Office 12
A | B | C | |
3 | Aufgabe 2 | Unteraufgabe 2.1 Unteraufgabe 2.2 Unteraufgabe 2.3 Unteraufgabe 2.4 |
Zelle | Formel |
B3 | =WENNFEHLER(SVERWEIS(A3;Tabelle2!A$3:C$7;2;FALSCH);"") |
C3 | =fncOptionBtn(SVERWEIS(A3;Tabelle2!A$3:C$7;2;FALSCH);C3) |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
![]() ![]() |
Betrifft: AW: mehrer OptionButtons dynamisch erzeugen?!
von: Thomas
Geschrieben am: 19.09.2014 08:21:09
wow....da muss ich jetzt erstmal hintersteigen. ziiiemlich viel "neuer code" für mich. vielen dank!
![]() |