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

Gebruik Autofilter

Status
Niet open voor verdere reacties.

Jan van Asseldonk

Terugkerende gebruiker
Lid geworden
22 nov 2000
Berichten
1.805
hoi mede-Excellers,

Het betreft Excel97 onder windows2000.

In een werkblad wordt gebruik gemaakt van autofilter.
De gegevensreeks is zo breed dat deze niet op één scherm past. Om fouten te voorkomen wil ik het volgende realiseren.
1. Een melding of ingevulde cel waaraan te zien is dat één (of meer) filters aanstaan.
2. Een knop om in één keer alle filters uit te zetten.

Opmerking bij 1:
Autofilter gebeurt niet met een macro, anders kon ik dit meteen vanuit de macro oplossen. Ik vermoed dat ik het moet zoeken in de richting workbook_sheetchange.

Opmerking bij 2:
Als ik het opneem en uitvoer via het menu krijg ik de code ActiveSheet.ShowAllData terug.
Als ik deze uitvoer vanuit een macro krijg ik foutmelding 1004 (Methode ShowAllData van klasse Worksheet is mislukt) terug.

Hoe kan ik dit oplossen?
Alvast bedankt voor het meedenken.
 
Jan,

Voor nr2 is dit misschien een oplossing?

Worksheets("Blad1").AutoFilterMode = False

Pierre
 
jpvs,
hartelijk bedankt. :thumb: :thumb:

Met deze aangepaste functie kon ik het probleem oplossen.
Ik ben er inmiddels ook achtergekomen waardoor de foutmelding bij nr.2 door ontstond.
Deze ontstaat als je een "Opdrachtknop" gebruikt uit de werkset besturingselement.
Bij gebruik van een "Knop" uit de werkset formulieren gaat het wel goed.

Status opgelost.
 
Met werkset besturingselementen kan je twee soorten knoppen maken

Nu vraag je je af wanneer, welke knop toegepast kan worden en wat zijn de beperkingen nl. “Knop1” en “CommandButton1”.

Antw :
Er zijn twee taakbalken met besturingselementen, namelijk

Formulieren.
De Formulieren zijn een erfenis uit vroegere versies van Excel en geven de gebruiker erg weinig controle over de eigenschappen.
Je kunt wel rechtstreeks een macro aan zo'n
besturingselement koppelen.
Een knop gemaakt in Formulieren voert alleen een macro uit die in een module staat. Met Formulieren kun je besturingselementen zoals knoppen, keuzelijsten enz toevoegen aan het werkblad.

Werkset Besturingselementen.
De Werkset Bersturingselementen bestaat uit een verzameling ActiveX besturingselementen waarbij je een uitgebreide controle hebt over de eigenschappen van dat element.
Een knop gemaakt met de Werkset Besturingselementen reageert op een acti (bijvoorbeeld Click) en voert dan de daarbij behorende code uit die staat in het blad waar die knop op staat.
Wanneer je in de “Ontwerpmodus” (de eerste knop met het driehoekje in je VBA werkbalk) op die knop klikt wordt hij geselecteerd en kun je met je rechter muisknop “Eigenschappen” kiezen.
Overigens, het is een goede gewoonte om de macro die bij de knop hoort in een aparte module te zetten.
Voorbeeld: In de code van het werkblad

Private Sub CommandButton1_Click() Naam van JouwMacro
End Sub
Waarbij die macro dan in een module staat.
Met Formulieren kun je besturingselementen zoals knoppen, keuzelijsten enz toevoegen aan het werkblad. de werkset besturingselementen zijn activex controls en vreten geheugen.
Dus het best is na te gaan of de functionaliteit die je wil bereiken ook gerealiseerd kan worden via de werkbalk “Formulieren” die iets minder mogelijkheden biedt maar over het algemeen toelaat van sneller te werken (oa bij het openen van het werkblad enz)

Dus eerst “Formulieren” proberen, meer mogelijkheden nodig -> kies dan
“Werkset Besturingselementen”.
Pierre
 
Uiteindelijk de functie toch niet kunnen gebruiken.
Deze gaf in combinatie met andere delen uit macro's problemen.
M.b.v. de methode die in de functie wel tot een oplossing gekomen om te controleren of er een filter aktief is door de volgende formule te gebruiken:
=ALS(AANTALARG(A3:A100:)=SUBTOTAAL(3;A3:A100);"Geen filter aktief";"Filter aktief").
Het aantal argumenten van de totale reeks wordt hiermee vergeleken met het aantal argumenten dat met subtotaal wordt getoond (de 3). Op het moment dat autofilter aktief is verschillen deze.
Om fouten te voorkomen mogen er geen lege cellen in de te controleren range voorkomen.

Deze methode werkt ook nog sneller als de eerder gebruikte. Met voorwaardelijke opmaak kan de betreffende cel ook nog opvallend gekleurd worden bij aktief filter.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan