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

VBA: keuze in menu moet rijen verbergen op meerdere werkbladen.

Status
Niet open voor verdere reacties.

rovano

Gebruiker
Lid geworden
4 jan 2008
Berichten
23
Beste,

Uitleg van meegestuurd voorbeeld:
Op het werkblad "Opname Formulier" vul ik product specifieke gegevens in. Een deel van die info wordt overgenomen op werkblad "uitwerking", met de bedoeling om op basis van leeftijd en andere factoren een overzicht te krijgen wanneer een item aan vervanging toe is.
De formules hiervoor heb ik in dit voorbeeld weggehaald, die werken goed en zijn voor deze vraag niet relevant.
Als ik in het werkblad opname formulier in cel F8 een type selecteer, dan krijg ik alleen dat type te zien in de regels 31 t/m 50, de andere types worden dan verborgen.

Vraag:
Ik wil graag dat, op basis van de keuze in "Opname Formulier", in het werkblad "uitwerking" diezelfde regels verborgen worden; dus als ik "type 1" selecteer op het opname formulier, ook alleen type 1 zichtbaar blijft op het blad uitwerking.

Wat heb ik al geprobeerd:
Ik heb de VBA code gekopieerd naar het blad uitwerking en de juiste cel aangepast (is niet meer F8 maar F10), maar dat wil niet werken. Wellicht omdat in F10 al een verwijzing naar Opname formulier staat??

wie kan mij helpen?

Alvast bedankt,
Rob
 

Bijlagen

  • voorbeeld1.xlsm
    461,9 KB · Weergaven: 15
Wellicht omdat in F10 al een verwijzing naar Opname formulier staat??
In F10 staat een formule. Deze triggert niet het change event omdat er feitelijk ook niets verandert.
Je kunt evt. de code toevoegen aan de bestaande code, maar dan moet er specifiek naar het andere werkblad worden verwezen.

TIP:
Als je nu de cellen in kolom B niet samenvoegt maar in iedere regel aangeeft om welk type het gaat. Dan kun je met een loopje in VBA vrij eenvoudig de regels verbergen die niet aan het criteria voldoen.
Dan hoef je ook niet al die rijen specifiek te benoemen in VBA.
 
Beste Gijsbert1,

Ik begrijp wat je met jouw tip bedoeld, maar dat zou alsnog moeten gebeuren op basis van een keuze in een ander werkblad.
Ik zocht eigenlijk naar een oplossing die de waarde in veld F10 kan lezen.

Ik heb ook al geprobeerd om ergens bovenaan in kolom O op blad uitwerking een formule te schrijven: =IF($F$10="type 1";1;0), in die verborgen kolom staat dan een 0 of een 1 achter de verschillende types. Dus in N4 staat Type 1 geschreven en in O4 de formule. Vervolgens ben ik aan het stoeien geweest om middels IF THEN diezelfde regels te verbergen, maar dat wil nog niet lukken.
 
ik ben er zelf al achter gekomen hoe ik het kan wijzigen.
Ik heb aan de code van het blad Opname Formulier de regels:

Worksheets("uitwerking").Rows("33:38").EntireRow.Hidden = False
Worksheets("uitwerking").Rows("39:52").EntireRow.Hidden = True
Worksheets("uitwerking").Rows(28).EntireRow.Hidden = False
Worksheets("uitwerking").Rows(29).EntireRow.Hidden = True
Worksheets("uitwerking").Rows(30).EntireRow.Hidden = True

toegevoegd.

Nu worden op dat blad de gewenste regels OOK verborgen, net zoals op het blad Opname Formulier.


Iedereen bedankt voor het meedenken. Ik ben er nog niet helemaal, maar als ik nog een vraag heb dan zien jullie mij weer.

Grt.
Rob
 

Bijlagen

  • voorbeeld1.xlsm
    462,7 KB · Weergaven: 9
Ik zou het aantal rijen per type gelijk houden. Dan kan de code veel eenvoudiger.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "F8" Then
    Application.ScreenUpdating = False
    t = Split(Target)(1) - 1
    Rows("31:50").Hidden = True
    Rows(t * 5 + 31).Resize(5).Hidden = False
    With Sheets("uitwerking")
      .Rows("33:52").Hidden = True
      .Rows(t * 5 + 33).Resize(5).Hidden = False
    End With
  End If
End Sub
 

Bijlagen

  • voorbeeld1.xlsm
    461,7 KB · Weergaven: 9
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan