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

Bepaalde rijen zichtbaar of te verbergen door datum

Status
Niet open voor verdere reacties.

Tijsss

Gebruiker
Lid geworden
25 jan 2012
Berichten
46
Beste mensen,

Is het mogelijk om bepaalde rijen zichtbaar of te verbergen te maken, als er in die bepaalde rij een datum staat dit overeenkomt met de datum die je graag wilt zien (met een dropdown menu)
Zie Test bestandje.

Groeten,
Tijs

Bekijk bijlage Test.xlsx
 
Waarom niet gewoon met het filter?
 

Bijlagen

  • Test-2.xlsb
    9,9 KB · Weergaven: 51
Bedankt voor je snelle reactie, helaas kan dat niet omdat dit probleem een klein onderdeel is uit een grote planning en het niet mogelijk is met een filter.
 
Wat is het verschil dan? Als je rijen gaat verbergen krijg je toch hetzelfde resultaat?
 
Ik veronderstel dat je enkel de maand wil zien die gekozen is?
Als de keuzecel juist boven de lijst staat zou het met deze macro moeten werken:

Code:
Sub verbergen()
Dim r As Range, ws As Worksheet, rij As Range, aantalrijen As Integer, aantalkolommen As Integer

Set ws = Worksheets("Blad1")
Set r = ws.Range("A3").CurrentRegion

aantalrijen = r.Rows.Count
aantalkolommen = r.Columns.Count
Set r = r.Offset(2, 0).Resize(aantalrijen - 2, aantalkolommen)

For Each rij In r.Rows
    
rij.Hidden = _
(Month(rij.Cells(1)) <> Month(Range("D2"))) _
    And Year((rij.Cells(1)) <> Year(Range("D2")))
Next
End Sub
 
Als de tabel in A3 begint en de keuze er juist boven staat, en als je de gegevens van de gekozen maand wil zien, zou dit moeten werken:

Code:
Sub verbergen()
Dim r As Range, ws As Worksheet, rij As Range, aantalrijen As Integer, aantalkolommen As Integer

Set ws = Worksheets("Blad1")
Set r = ws.Range("A3").CurrentRegion

aantalrijen = r.Rows.Count
aantalkolommen = r.Columns.Count
Set r = r.Offset(2, 0).Resize(aantalrijen - 2, aantalkolommen)

For Each rij In r.Rows
rij.Hidden = _
(Month(rij.Cells(1)) <> Month(Range("D2"))) _
    And Year((rij.Cells(1)) <> Year(Range("D2")))
Next
End Sub

Je kunt dit ook automatisch laten gebeuren door het te koppelen aan het "Change" event van het blad:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then verbergen
End Sub
 
@reneemettrie, Welk verschil krijg je dan in vergelijking met het filter? Waarom 2 posts en waarom zoveel code?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "D2" Then
    Application.ScreenUpdating = False
    For Each cl In Cells(3, 1).CurrentRegion.Columns(1).SpecialCells(2, 1)
        cl.EntireRow.Hidden = Not (Month(cl) = Month(Target) And Year(cl) = Year(Target))
    Next cl
End If
End Sub
 

Bijlagen

  • Test-3.xlsb
    16,3 KB · Weergaven: 43
Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address (0,0) = "D2" Then [a3].CurrentRegion.Offset(1).AutoFilter 1, , xlFilterValues, Array(1, Format(Target, "m-d-yyyy"))
End Sub
 
Super het is gelukt! Bedankt voor jullie snelle reacties en natuurlijk de oplossingen.

mvg,
Tijs
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan