Vanuit een ander programma maken wij excellijsten, in die lijsten maken wij gebruik van filters.
Nu kan een gebruiker van deze lijsten de filters gebruiken om beperkingen in te stellen en dan via een knop gegevens kopiëren naar het klembord. Dit werkt allemaal goed, alleen staan er onder de lijst een heleboel lege regels (tabelstijl).
Nu wordt in het bestand kolom A gekopieerd naar het klembord, dus bij deze kolom wil ik dat bij het gebruik van de knop de lege regels uitgeschakeld worden. Op dit moment doe ik dat als volgt:
Voor deze code gebruik ik een code om de naam van het filtergebied/tabel op te halen, vandaar de variabele "Tabel".
Dit werk goed, zolang men geen filter in kolom A (field:=1) gebruikt, gebruikt men wel een filter, dan wordt die gewist door deze code en worden de lege cellen verborgen.
Ik ben nu op zoek naar een code die bekijkt en onthoud of en welke filter in field:=1 gebruikt wordt, hier indien nodig aan toevoegt dat de lege cellen uitgeschakeld zijn, dan zijn dingetje doet (kolom A kopiëren) en vervolgens de filter weer terug zet zoals de gebruiker hem had ingesteld.
Loop hier al 2 dagen mee te stoeien, maar krijg het niet werkend. Wel codes gevonden die de huidige filters (maar dan ook meteen van alle kolommen) zouden moeten kunnen opslaan, verwijderen en weer toepassen, maar geen code die een filter kan aanpassen.
Waar ik naar mijn idee naar toe moet is dat de criteria uit field 1 in een array gestopt worden, deze array moet gecontroleerd worden of lege cellen hierin nog actief staan, zo ja, dan moeten die inactief, zo nee, dan is de filter verder OK. Maar die array van field 1 krijgen lukt mij niet... Iemand hier een heldere ingeving voor? Of misschien een andere manier hoe het zou kunnen?
Nu kan een gebruiker van deze lijsten de filters gebruiken om beperkingen in te stellen en dan via een knop gegevens kopiëren naar het klembord. Dit werkt allemaal goed, alleen staan er onder de lijst een heleboel lege regels (tabelstijl).
Nu wordt in het bestand kolom A gekopieerd naar het klembord, dus bij deze kolom wil ik dat bij het gebruik van de knop de lege regels uitgeschakeld worden. Op dit moment doe ik dat als volgt:
Code:
ActiveSheet.ListObjects(Tabel).Range.AutoFilter field:=1, Criteria1:="<>"
Dit werk goed, zolang men geen filter in kolom A (field:=1) gebruikt, gebruikt men wel een filter, dan wordt die gewist door deze code en worden de lege cellen verborgen.
Ik ben nu op zoek naar een code die bekijkt en onthoud of en welke filter in field:=1 gebruikt wordt, hier indien nodig aan toevoegt dat de lege cellen uitgeschakeld zijn, dan zijn dingetje doet (kolom A kopiëren) en vervolgens de filter weer terug zet zoals de gebruiker hem had ingesteld.
Loop hier al 2 dagen mee te stoeien, maar krijg het niet werkend. Wel codes gevonden die de huidige filters (maar dan ook meteen van alle kolommen) zouden moeten kunnen opslaan, verwijderen en weer toepassen, maar geen code die een filter kan aanpassen.
Waar ik naar mijn idee naar toe moet is dat de criteria uit field 1 in een array gestopt worden, deze array moet gecontroleerd worden of lege cellen hierin nog actief staan, zo ja, dan moeten die inactief, zo nee, dan is de filter verder OK. Maar die array van field 1 krijgen lukt mij niet... Iemand hier een heldere ingeving voor? Of misschien een andere manier hoe het zou kunnen?