Ken je het probleem dat tabellen soms niet alle waardes tonen, omdat er door een andere gebruiker van de sheet al een filter staat ingesteld. Indien dat één tabel betreft dan kun je dat gemakkelijk oplossen door met de hand het filter van deze tabel te verwijderen binnen Excel. Zijn dat meerdere tabellen dan loont het om deze actie af te vangen met een VBA script.
Als je de onderstaande functie aanroept binnen je sub ( door ‘Call AlleFiltersVerwijderen‘) te schrijven dan zal hij binnen je werkmap alle filters verwijderen die ingesteld staan.
Waar deze functie helemaal tot zijn recht komt is in de situatie dat jij vanuit een VBA script één of meer andere Excel bestanden opent en daar gegevens uit tabellen moet importeren. In dat geval is deze functie je enige optie om dat op een juiste manier te doen. Je zult de functie dan iets moeten aanpassen. Indien je deze code vlak na het openen van een bestand plaatst zal dit bestand het active workbook zijn. Je kunt in de onderstaande code dan ThisWorkbook.Worksheets vervangen door ActiveWorkbook.Worksheets.
Public Function AlleFiltersVerwijderen()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
         With ws
            If ws.AutoFilterMode Then
                If ws.FilterMode Then ws.ShowAllData
            End If
        End With
    Next
End Function
Als het goed is zijn nu alle filters uit je werkmap verwijderd. Wil je meer weten over hoe je kunt filteren met behulp van VBA? Lees het hier.
							
			
Pingback:Filteren in een macro - Macro Excel Advies