Avatar billede Michael_H007 Juniormester
20. september 2016 - 21:41 Der er 3 kommentarer og
1 løsning

Filtrering af data

Har følgende skabelon, som jeg ønsker at kunne filtrere på en af de to parametre markeret med gult.

Når man angiver en dato, så skal alle linier, hvor den pågældende dato ligger vises også selvom den ligger i intervallet mellem 'Dato og 'Dato til'.

Hvis derimod datosøgningen i den gule boks er blank, så skal man kunne søge på det andet kriterie, som er Ansv. - her skal så linierne med den pågældende initialer vises.

Der er altså tale om enten/eller ikke både og i søgekriterierne.
http://www.filedropper.com/tidsplanskabelon
Avatar billede jens48 Ekspert
20. september 2016 - 22:37 #1
Højreklik på fanebladet og indsæt nedenstående makro under Vis Koder. Makroen kører automatisk, når der skrives noget i C5 eller C6. Relevante linier vises og alle andre skjules.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C5:C6")) Is Nothing Then
    Dim LastRowColA, x As Integer
    LastRowColA = Range("A65536").End(xlUp).Row
    Range("A9:A" & LastRowColA).EntireRow.Hidden = False
If Range("C5") <> "" Then
    For x = 9 To LastRowColA
        If Cells(x, 1) <= Range("C5") And Cells(x, 3) >= Range("C5") Then
            Cells(x, 1).EntireRow.Hidden = False
        Else
            Cells(x, 1).EntireRow.Hidden = True
        End If
    Next
    Else
    If Range("C6") <> "" Then
        For x = 9 To LastRowColA
            If Cells(x, 7) = Range("C6") Then
                Cells(x, 1).EntireRow.Hidden = False
            Else
                Cells(x, 1).EntireRow.Hidden = True
            End If
        Next
    End If
End If
End If
End Sub
Avatar billede Michael_H007 Juniormester
21. september 2016 - 08:04 #2
Det virker fint - en lille ting mere. Det ene søgefelt er et tekstfelt - hvordan får jeg sat ind, så der ikke skelnes mellem 'STORE' og 'små bogstaver' ?
Avatar billede jens48 Ekspert
21. september 2016 - 08:47 #3
Prøv med denne makro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C5:C6")) Is Nothing Then
    Dim LastRowColA, x As Integer
    LastRowColA = Range("A65536").End(xlUp).Row
    Range("A9:A" & LastRowColA).EntireRow.Hidden = False
If Range("C5") <> "" Then
    For x = 9 To LastRowColA
        If Cells(x, 1) <= Range("C5") And Cells(x, 3) >= Range("C5") Then
            Cells(x, 1).EntireRow.Hidden = False
        Else
            Cells(x, 1).EntireRow.Hidden = True
        End If
    Next
    Else
    If Range("C6") <> "" Then
        For x = 9 To LastRowColA
            If WorksheetFunction.Proper(Cells(x, 7).Value) = WorksheetFunction.Proper(Range("C6").Value) Then
                Cells(x, 1).EntireRow.Hidden = False
            Else
                Cells(x, 1).EntireRow.Hidden = True
            End If
        Next
    End If
End If
End If
End Sub
Avatar billede Michael_H007 Juniormester
22. september 2016 - 07:41 #4
Perfekt tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester