Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen

mehrer OptionButtons dynamisch erzeugen?!

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

GrußformelHomepage


  

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 Sub




VBA/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

Der Aufruf der Funktion in der Zelle geht dann so:

 ABC
3Aufgabe 2Unteraufgabe 2.1
Unteraufgabe 2.2
Unteraufgabe 2.3
Unteraufgabe 2.4
 

ZelleFormel
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


Das ganze basiert auf einem Prog von Nepumuk...

Gruß,


  

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!


 

Beiträge aus den Excel-Beispielen zum Thema "mehrer OptionButtons dynamisch erzeugen?!"