Microsoft Excel

Herbers Excel/VBA-Archiv

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

Code für ToggleButton


Betrifft: Code für ToggleButton von: Frank
Geschrieben am: 22.04.2017 20:57:43

Hallo allerseits,

bezugnehmend auf folgende Codes:

Sub ZeilenAusblenden256_128()

    Dim objCell As Range

    For Each objCell In Range("DP4:DP639")

        Select Case objCell.Row Mod 10
        Case 4 To 6, 9: objCell.EntireRow.Hidden = True
        End Select

    Next
End Sub

Sub ZeilenEiblenden256_128()

    Dim objCell As Range

    For Each objCell In Range("DP4:DP639")

        Select Case objCell.Row Mod 10
        Case 4 To 6, 9: objCell.EntireRow.Hidden = False
        End Select

    Next
End Sub
hab ich mir folgenden Code für ein Togglebutton gebastelt,der sogar funktioniert(stolz guck)
Private Sub ToggleButton1_Click()
'Beispiel

If ToggleButton1.Caption = "128er Feld" Then
        ToggleButton1.Caption = "256er Feld"
    Else
        ToggleButton1.Caption = "128er Feld"
     End If
        
    If ToggleButton1.Value = True Then
        Dim objCell As Range

    For Each objCell In Range("DP4:DP639")

        Select Case objCell.Row Mod 10
        Case 4 To 6, 9: objCell.EntireRow.Hidden = True
        End Select

    Next
    Else
        If ToggleButton1.Value = False Then


    For Each objCell In Range("DP4:DP639")

        Select Case objCell.Row Mod 10
        Case 4 To 6, 9: objCell.EntireRow.Hidden = False
        End Select

    Next
    End If
End If
End Sub
Mein Auge sagt mir,das dieser Code alles andere als Profihaft aussieht. Was kann man wie verbessern?

Lg Frank

  

Betrifft: AW: Code für ToggleButton von: Nepumuk
Geschrieben am: 22.04.2017 21:14:08

Hallo,

so ok?

Private Sub ToggleButton1_Click()
    
    Dim objCell As Range
    
    If ToggleButton1.Value Then
        ToggleButton1.Caption = "128er Feld"
    Else
        ToggleButton1.Caption = "256er Feld"
    End If
    
    For Each objCell In Range("DP4:DP639")
        
        Select Case objCell.Row Mod 10
            Case 4 To 6, 9: objCell.EntireRow.Hidden = ToggleButton1.Value
        End Select
        
    Next
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Code für ToggleButton von: Frank
Geschrieben am: 22.04.2017 21:20:41

Hi Nepumuk,

perfekt und sieht auch nach was aus. Und ich sitz da 3 Stunden dran um son wilden Garten zu konstruieren.

Lg Frank


  

Betrifft: AW: Code für ToggleButton von: Frank
Geschrieben am: 23.04.2017 08:05:10

Moin Nepumuk,

bezugnehmend auf deinen Code

Private Sub ToggleButton1_Click()
    
    Dim objCell As Range
    
    If ToggleButton1.Value Then
        ToggleButton1.Caption = "128er Feld"
    Else
        ToggleButton1.Caption = "256er Feld"
    End If
    
    For Each objCell In Range("DP4:DP639")
        
        Select Case objCell.Row Mod 10
            Case 4 To 6, 9: objCell.EntireRow.Hidden = ToggleButton1.Value
        End Select
        
    Next
End Sub
folgende Frage:

Ist es möglich " ToggleButton1.Caption = "128er Feld" " als Bedingung für neuen Code zu nutzen?

Folgender Gedankengang: Wenn ToggleButton1.Caption = "128er Feld" Dann Bereich DN8-DT8 oder Zeile8 = Füllfarbe schwarz und keinen Rahmen. Und das dann per "Select Case objCell.Row Mod 10" im 10er Schritt(Zeile 8,18,28 usw bis 638)?

Generelle Frage,ist das überhaupt möglich und kann ich es ggf. direkt in obigen Code implementieren?

Lg Frank


  

Betrifft: AW: Code für ToggleButton von: Nepumuk
Geschrieben am: 23.04.2017 08:58:47

Hallo,

warum willst du die Caption nutzen? Benutze wie ich den Wert (Value) des Buttons. Gedrückt Value=True nicht gedrückt Value=False. Und natürlich kannst du das in diesem Makro unterbringen.

Gruß
Nepumuk


  

Betrifft: AW: Code für ToggleButton von: Gerd L
Geschrieben am: 23.04.2017 10:38:41

Moin Frank!

Private Sub ToggleButton1_Click()
    
Dim objCell As Range


With ToggleButton1
    
If .Value Then
    .Caption = "128er Feld"
Else
    .Caption = "256er Feld"
End If

For Each objCell In Range("DP4:DP639")
    
    Select Case objCell.Row Mod 10
    Case 4 To 6, 9: objCell.EntireRow.Hidden = .Value
    Case 8: objCell.Offset(0, -2).Resize(1, 7).Interior.Color = IIf(.Value = True, 0, -4142)
    End Select
    
Next

End With


End Sub

Gruß Gerd


Beiträge aus den Excel-Beispielen zum Thema "Code für ToggleButton"