Mehrere OptionButton mit CommandButton nacheinander durchschalten
#11
Hallöchen,

wenn Du Deine Buttons per Makro ansprichst, ist es dem Makro erst mal egal, ob die durch das Ausblenden einer Spalte für Dich unsichtbar geworden sind oder nicht. Für Excel sind sie das jedenfalls nicht. Wenn Du die Eigenschaft Ausgeblendet einer Spalte Zeile für die Steuerung von Optionbuttons verwenden willst, geht das nicht so einfach. Du müsstest prüfen, ob der jeweilige Optionbutton z.B. mit TopLeftCell in der ausgeblendeten Spalte / Zeile liegt.

Falls es Dir dabei nicht um die Position des Optionbuttons geht sondern um die verlinkte Zelle, musst Du eben das prüfen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#12
Oh mein Gott, kann ich Euch beschwerlich folgen. 
Hab wie gewünscht mal ne Beispieldatei erstellt. Damit ist es glaub ich tatsächlich leichter erklärt. 

Ihr seht hier die CheckBoxen 1-4 welche mir zugehörig Zeile 1-4 ein/ausblenden.
Zu jeder dieser Zeile gehört ein Optionbutton 1-4. Die Optionbutton sollen mit aktivieren der CheckBox, also mit ausblenden der Zeile, mitverschwinden. Das tun sie auch. Aber die bleiben aktiv. Wenn Ihr beispielsweise Zeile 3 ausblendet und mit dem CommandButton durch die Optionbutton durchwechselt, ist nach dem zweiten Optionbutton erst mal kein aktivierter OB sichtbar, da trotz Ausblenden der dritte angewählt wurde. In diesem Fall möchte ich den aber übersprungen haben und die 4 müsste markiert sein...

Wenn das tatsächlich nicht so einfach funktionieren sollte wie ich mir das vorstelle, könnte ich alternativ noch damit leben, wenn der Cursor 
mit klicken des CommandButton immer vorgegebene Zellen der Reihe nach anwählt. Quasi wie bei den OptionButtons nur eben dann mit Zellen. 

Auf dem CommandButton habe ich wie Ihr sehen könnt mit dem Code

ActiveSheet.Range("a01").Select

bereits die erste Zelle hinterlegt, aber wie würde ich dann mehrere Zellen vorgeben und diese eben auch der Reihe nach anwählen lassen können?

Ich hätte noch viele weitere Fragen aber ich belasse es mal bei diesen... Blush


Kleiner Nachtrag. Ich habe festgestellt, dass wenn ich die OptionButtons in deren Eigenschaften auf VISIBLE:false stelle, dass sie wie gewünscht übersprungen werden.
Gibt es nicht die Möglichkeit diese per Makro VISIBLE:true/falsch zu schalten?


Angehängte Dateien
.xlsm   OptionButton.xlsm (Größe: 33,79 KB / Downloads: 4)
Top
#13
Hallöchen,

Zitat:Gibt es nicht die Möglichkeit diese per Makro VISIBLE:true/falsch zu schalten

ja, das geht.

ActiveSheet.OLEObjects("OptionButton1").Visible=False

Mehr gibt's heute aber nicht mehr, ich mach jetzt erst mal die Schotten dicht für heute :31:
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#14
Hallo,

hier meine Spielerei:


' **************************************************************
'  Modul:  Tabelle1  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

Private Sub CommandButton1_Click()
 Dim lngCount As Long, lngTemp As Long
 Static lngNummer As Long
 lngCount = 4 'Anzahl OptionButton
 lngTemp = lngNummer
 Do
   lngNummer = lngNummer Mod lngCount + 1
   If lngTemp = lngNummer Then Exit Do
   With Tabelle1.OLEObjects("OptionButton" & lngNummer).Object
     If .GroupName = "Tabelle1" Then
       .Value = True
       Exit Do
     End If
   End With
 Loop
End Sub


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************


Option Explicit

Sub Kontrollkästchen_Klicken()
 Dim lngZeile As Long
 lngZeile = Mid(Application.Caller, InStrRev(Application.Caller, " ") + 1)
 With Tabelle1.OLEObjects("OptionButton" & lngZeile)
   If Tabelle1.CheckBoxes(Application.Caller).Value = 1 Then
     .Visible = False
     .Object.GroupName = "Ausgeblendet"
     Rows(lngZeile).Hidden = True
   Else
     Rows(lngZeile).Hidden = False
     .Object.GroupName = "Tabelle1"
     .Visible = True
   End If
 End With
 Tabelle1.Cells(1).Select
End Sub
Gruß Uwe


Angehängte Dateien
.xlsm   OptionButton_Uwe.xlsm (Größe: 34,41 KB / Downloads: 3)
Top
#15
Liebe professionelle Excel Anwender,

ich habe es geschafft.  :15:  Dank Eurer Hilfsbereitschaft bin ich mit meinem kleinen Tool den gewünschten Schritt weiter gekommen.
Auch wenn ich Eure Formeln nicht eins zu eins anwenden konnte weil ich es irgendwie nicht vollends zufriedenstellend in mein Tabellenblatt integrieren konnte. Uwe seine Datei hat zwar an sich perfekt funktioniert, aber aus irgendeinem Grund wollten die Codes in meinem Sheet nicht mehr richtig arbeiten - sicherlich mein Fehler, aber egal, so habe ich mir doch anhand der diversen Vorschläge eine funktionierende Methode zusammen basteln können.

Alleine hätte ich das nicht vollbringen können.

Aber ich muss gestehen, Eure Mühen trugen nicht zur Verbesserung der Welt, sondern lediglich zur Verbesserung meines kleinen Dartprogrammes bei.   Wink 


Als kleines Dankeschön könnte ich mich sogar überreden lassen Euch eine Kopie zur eigenen Verwendung zur Verfügung zu stellen, falls Bedarf wäre.

Gelöst habe ich es nun wie folgt:

Code:
Private Sub CommandButton3_Click()
   ToggleOptionButtons
End Sub
Private Sub ToggleOptionButtons()
   Static CurrentCeIndex As Integer
   
   Do
       CurrentCeIndex = (CurrentCeIndex Mod Me.OLEObjects.Count) + 1
       If TypeName(Me.OLEObjects(CurrentCeIndex).Object) = "OptionButton" Then
           If Me.OLEObjects(CurrentCeIndex).Visible Then
               Me.OLEObjects(CurrentCeIndex).Object.Value = True: Exit Do
           End If
       End If
   Loop
End Sub

Code:
Sub Kontrollkästchen35_Klicken()
Rows("16:18").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Range("$A$1").Select



If ActiveSheet.OLEObjects("OptionButton5").Visible = False Then
ActiveSheet.OLEObjects("OptionButton5").Visible = True
Else
ActiveSheet.OLEObjects("OptionButton5").Visible = False
End If


End Sub

Vielen lieben Dank noch einmal.
Ganz sicher sogar, werde ich irgendwann wieder mal Fragen in den Raum werfen.

Gruß Tobi
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste