• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Rijen tonen EN verbergen dmv checkbox

Status
Niet open voor verdere reacties.

Boekiewoekie

Gebruiker
Lid geworden
6 sep 2023
Berichten
6
Hoi,
ik gebruik onderstaande code om rijen te tonen met een 'A' in de H-kolom als bijhorende checkbox word aangevinkt. (code heb ik ook gevonden op dit forum)
Dit werkt prima. Echter, als de checkbox weer uitgevinkt wordt blijven de rijen zichtbaar, en da's nou net niet de bedoeling.
Wie kan me helpen met dit probleem? (het is dus de bedoeling om rijen met een 'A' in de H-kolom zichtbaar te maken 'met vinkje', en te verbergen 'zonder vinkje'

Code:
Sub A()

Dim cell As Range
With Sheets("Checklist")
    For Each cell In .Range("H1:H300")
        If UCase(cell.Value) = "A" Then cell.EntireRow.Hidden = False
    Next
End With


End Sub
 
hoi Boekiwoeki,

Met mijn weinige kennis van vba:

Kan je niet 1 regel toevoegen?

If UCase(cell.Value) = "" Then cell.EntireRow.Hidden = True
 
Doe het anders eens zo:
Code:
Sub A()
    With Sheets("Checklist")
        For Each cl In .Range("H1:H300")
            If UCase(cl.Value) = "A" Then cl.EntireRow.Hidden = Not cl.EntireRow.Hidden
        Next
    End With
End Sub

Gebruik ook geen correct Engels woord als naam voor een variabele.
 
Laatst bewerkt:
Top! Werkt! (van die engelse woorden wist ik ook niet trouwens)
Dank je wel!
 
Laatst bewerkt door een moderator:
Duidelijk. Zoals je al eerder schreef wordt er niet gekeken naar de status van het selectievakje, alleen of erop geklikt wordt of niet.
Is daar nog iets slims op te verzinnen?
 
Laatst bewerkt door een moderator:
Dat heb je in dit geval niet nodig, maar controleren of een CheckBox is aangevinkt of niet kan je zo doen:
Code:
If CheckBox1 Then
If Not CheckBox1 Then
 
Jawel, ik moet nu nl beginnen met een sheet met verborgen rijen. Als bijvoorbeeld 'A' toevallig zichtbaar is en ik zet een vinkje in de betreffende checkbox worden de rijen verborgen. (net omgekeerd dus)
Niet erg, ik ben bij mijn vorige oplossing gewend om bij start met een button alle rijen te verbergen, maar zou leuke aanvulling zijn.
 
Laatst bewerkt door een moderator:
Dan kan je dat dus zo doen:
Code:
For Each cell In .Range("H1:H300")
    If UCase(cell.Value) = "A" Then cell.EntireRow.Hidden = CheckBox1
Next
 
Duidelijk. Nogmaals dank voor je hulp, ik ga deze sluiten.
 
Laatst bewerkt door een moderator:
Waarom niet een slicer toegevoegd aan je kolom, kan je zonder VBA de kolom filteren
 
Omdat er bij het aanklikken van een vinkje op verschillende werkbladen verschillende rijen zichtbaar moeten worden gemaakt.
Bijvoorbeeld niet alleen een picklist met items maar op een ander werkblad direct een offerte inclusief foto's en teksten en weer op een ander werkblad bijbehorende prijzen.
 
Laatst bewerkt door een moderator:
Duidelijk. Overigens is het een stuk sneller om de Autofilter methode te gebruiken om rijen te verbergen dan door ze in een loopje 1 voor 1 te doen.
 
Voorbeeldcode met een ToggleButton.
Code:
Private Sub ToggleButton1_Click()
Dim sh As Worksheet
With ToggleButton1
 If .Value Then
    For Each sh In ThisWorkbook.Sheets
        sh.Cells(1).CurrentRegion.AutoFilter 8, "<>A"
        .Caption = "maak zichtbaar"
    Next
 Else
    For Each sh In ThisWorkbook.Sheets
        sh.Cells(1).CurrentRegion.AutoFilter
       .Caption = "verberg A"
    Next
 End If
End With
End Sub
Eventueel aanpassen voor specifieke sheets met een IF statement:
Code:
 if sh.name="blabla" or sh.name="???"
 
Persoonlijk vind ik togglebuttons altijd lastig. Want beschrijft de tekst op de knop nou de huidige status, of wat er gaat gebeuren als je erop klikt? Het is niet altijd goed te zien of de toggle button nou "aan" of "uit" staat en dus is niet altijd duidelijk wat er gebeurt als je op de knop klikt. Een checkbox is wat dat betreft duidelijker vind ik.
 
Bij een wisselknop wijzig ik altijd het opschrift naar wat de knop gaat doen als je er op klikt.
Verder gebruik ik ook liever een checkbox.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan