• 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, uitbreiding op een post van vroeger

Status
Niet open voor verdere reacties.

tonissteiner

Gebruiker
Lid geworden
17 sep 2008
Berichten
352
Beste,

een tijdje geleden vond ik hier een file. echter vind hem niet meer terug op dit forum.
de macro deed bepaalde rijen verbergen indien een cel een bepaalde waarde had. deze macro werkt voor 2 breiken.

heb hem zelf wat proberen aanpassen maar loop vast. ik weet waar maar vind zelf geen oplossing. ikvermoed dat ik ergens een IfElse zal moeten gebruiken...

hierbij de file. blad 1 is de originele hoe ik hem hier vond, blad 2 hoe ik hem probeer aan te passen.

alvast bedankt

Bekijk bijlage Rijen verbergen obv een celeigenschap.xls
 
Ik heb de code een beetje aangepast.
Heb deze in een calculate-event gezet omdat een validatie geen change-event triggert.
En om die calculate te triggeren heb ik een verborgen som gezet in A1, deze som kan in elke andere willekeurige cel staan, deze som dient tot niets enkel maar om de calculate te triggeren.
 

Bijlagen

Ik heb de volgende code in blad 2 gezet.

zodra je meer als 2 keuzes hebt word een case select intressant omdat je dan goede controle hebt over de reactie bij elke input, ook is het handig om andersom te gaan denken ipv allerlei losse bereiken verbergen kun je ook alles verbergen met 1 commando en vervolgens 1 bereik (het geldige tonen.
 
en omdat er altijd een kortere code is heb ik ook nog een blad3 toegevoegd met de volgende code

omdat het aantal regels steeds gelijk is, namelijk 3 tekstregels en 1 wit regel kun je heel simpel berekenen welke rijen getoond moeten worden, wederom word eerst het hele bereik verborgen en daarna de juiste getoond op basis van de keuze.



Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("B5")) Is Nothing Then
  
    mp = Range("B5")
    If IsNumber(mp) Then
    Rows("9:19").Hidden = True
    Cells(5 + 4 * mp).Resize(4, 0).EntireRow.Hidden = False

End Sub
 

Bijlagen

Hallo Cobbe en Roel,

enorm bedankt al voor jullie wel heel snelle reacties. met beide kan ik verder werken. twee verschillende codes maar alle wegen leiden naar Rome hé ;)

@Cobbe, jouw werkwijze is nieuw voor me en moet me daar nog even in verdiepen want snap ze tot nu toe niet. ook de 5 waarmee je vermenigvuldigd is blijkbaar niet belangrijk. zelfs als dit een 1 is blijft jouw code werken. in jouw code is er zelfs geen verwijzing naar die cel A1? wat als er nog een formule zou staan? dan blijft jouw code verder werken ook he

@Roel, jouw idee om er een case selct van te maken is een goed idee. soms zit je te lang te denken in een bepaalde richting dat je op lange duur vastloopt he

heren, nogmaals bedankt
 
Roel,

jouw tweede post is ook een mooie code. handig om met te werken.

thanks

mvg,

Stefan
 
@Roel

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.address="$B$5" Then
    if isnumber(target.value) Then
      Rows("9:19").Hidden = True
      rows(5 + 4 * target.value).Resize(4).Hidden = False
    end if
  end if
End Sub
 
Haha snb, het blijft pijn doen hé als de code niet helemaal schoon is.. mijn code viel een beetje onder de "wet op de toegepaste luiheid".. mijn hoofdpunt was de gekozen waarde uit B5 als multiplier gebruiken om een vast aantal regels omlaag te springen.. ik heb de rest van de code niet aangepast omdat het functioneerde.. en als het niet stuk is waarom zou je dan iets nieuws maken :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan