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

Kolommen verbergen / filteren met meerdere celvoorwaarden (VBA)

Status
Niet open voor verdere reacties.

paulos14

Gebruiker
Lid geworden
4 feb 2019
Berichten
7
Beste,

Graag zou ik in het tabblad "invoerblad" (met gebruik van een Macro/VBA) bepaalde kolommen willen verbergen / filteren met de 3 verschillende variabelen.
Ik kom er helaas niet uit en hoop dat iemand mij kan helpen. Zie bijlage voor mijn document.

In cel E14 staat de maand die ik graag weergegeven wil hebben. Deze maand kan hij vinden in rij 4.
In cel E13 staat de keuze of je de weekenden verborgen wil hebben. Keuze uit ja en nee. Indien ja, dan alle "z" waarden in rij 19 ook verbergen.
In cel E15 staat het jaar van weergave. Dit is weergegeven in rij 2.

Graag zou ik de 3 filters willekeurig door elkaar willen gebruiken als een soort van filter.

vb.
Ik wil een weergave van de maand Januari, jaar 2021, zonder weekenden -> uitkomst rijen: j,m-q,t-x,aa-ae,ah-al.
Als ik daarna op verberg weekenden op "Nee" klik, dan wil ik de rijen j-an zien .

Kan iemand mij hiermee helpen?

Alvast dank.

Groeten Paul
 

Bijlagen

  • Test file.xlsm
    74,8 KB · Weergaven: 18
De rijen j t/m an moeten nog uitgevonden worden in mijn versie van Excel.
 
Beste Sylvester,

Ik heb geen idee hoe je het hebt gedaan... :) maar dit is exact wat ik wilde! Te gek!
Hartelijk dank.

Groeten Paul
 
Unprotect en Protect kan je het beste gebruiken als je eerst begrijpt wat er gebeurt.

Iets andere benadering.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("E13:E15")) Is Nothing And Target.Count = 1 Then
    Dim r1 As Range
    Application.ScreenUpdating = False
    Columns.Hidden = False
    ar = Range("E13:E15")
    Set r = Cells(18, 6).Resize(, Cells(18, Columns.Count).End(xlToLeft).Column)
    r.EntireColumn.Hidden = True
    
    x = CDbl(DateValue("01-" & ar(2, 1) & "-" & ar(3, 1)))
    x1 = Application.EDate(x, 1) - x
    y = Application.Match(x, Rows(18), 0)
    
    If IsNumeric(y) Then
      Cells(1, y).Resize(, x1).EntireColumn.Hidden = False
      If ar(1, 1) = "Ja" Then
        For Each cl In r.SpecialCells(12)
          If Weekday(cl, 2) > 5 Then
            If r1 Is Nothing Then Set r1 = cl Else Set r1 = Union(r1, cl)
          End If
        Next cl
        r1.EntireColumn.Hidden = True
      End If
    End If
  End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan