• 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 verbergen

Status
Niet open voor verdere reacties.

tobo100

Gebruiker
Lid geworden
14 okt 2013
Berichten
156
Beste allemaal
Via een een Form met checkboxen probeer ik een aantal rijen op Blad1 te verbergen.
Hier bij krijg ik iedere keer een fout melding: "Eigenschap hidden van klasse range kan niet worden ingesteld"
het vreemde hier bij is als ik de VBA open, en op F8 druk deze er dan wel vlekkeloos door heen loopt.
(Het werkblad in niet beveiligd)

het doel is uiteindelijk 25 van dit soort regels te kunnen verbergen of zichtbaar te maken.
waarschijnlijk is mijn code opbouw ook niet ideaal
ik ben van plan, om 25 soortgelijke VBA code blokken te maken, misschien kan dit
wel handiger.

ik hoor het graag, en vast bedank
 

Bijlagen

Dit is voldoende en werkt bij mij goed:
Code:
Sub CheckBox1_Click()
    Sheets("Blad1").Range("A9:A14").EntireRow.Hidden = Not CheckBox1
End Sub
Maar er lijkt inderdaad iets vreemds aan de hand bij het gebruik van CheckBoxes.
Soms komt de foutmelding die je zei, maar daar heb ik nog geen vingers achter kunnen krijgen.
 
Bedankt voor je reactie Edmoor

Ik blijf de fout melding ook houden,
als ik in de code in step mode doorloop
dan werkt het perfect.
bijzonder vreemd dit...
 
Tja, samengevoegde cellen is nooit goed.
Code:
Sheets("Blad1").rows("9:14").Hidden = Not CheckBox1
 
@HSV
als ik uw code verander en verwijs naar Blad2 , waar Geen samen gevoegde cellen zijn werk dit ook niet
 
Zo werkt het wel, maar zonder DoEvents gaat het fout, heb ik geen goede verklaring voor:
Code:
Option Explicit

Private Sub CheckBox1_Click()
    HideRows Me.CheckBox1.Value, 9, 14
End Sub

Private Sub CheckBox2_Click()
    HideRows Me.CheckBox2.Value, 15, 20
End Sub

Private Sub CheckBox3_Click()
    HideRows Me.CheckBox3.Value, 21, 26
End Sub

Sub HideRows(blnHide, rowFrom, rowTo)
    Dim r As Long
    For r = rowFrom To rowTo
        DoEvents
        Worksheets("Blad1").Rows(r).EntireRow.Hidden = Not blnHide
    Next
End Sub
 
Die DoEvents lijkt inderdaad de truuk te zijn:
Code:
Sub CheckBox1_Click()
    ShowHide "9:14", CheckBox1
End Sub

Sub ShowHide(Regels As String, AanUit As Boolean)
    DoEvents
    Sheets("Blad1").Rows(Regels).Hidden = Not AanUit
End Sub
 
Laatst bewerkt:
Hier een optie met een Class. Zo voorkom je dat je 25 keer dezelfde code schrijft voor dezelfde actie.
 

Bijlagen

Laatst bewerkt:
Beste Edmoor Ahulpje & JEC.

deze codes lopen als een trein..
Hier ben er erg blij mee, en was hier zelf nooit op gekomen.
bedankt voor uw tijd en kennis!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan