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

Draaitabel/Slicer filteren met makro

Status
Niet open voor verdere reacties.

ExcelTonnie

Gebruiker
Lid geworden
5 jul 2016
Berichten
302
Ik heb een draaittabel die aangevuld wordt (Invoer tab) en van die waarden een grafiek moet laten zien laat zien.
De data komt in tab Totalisatie te staan.

De bedoeling is:
De grafiek moet automatisch de laatst ingevoerde datum als selectie weergeven.
Heb al een vba geprobeerd maar de selectie gebeurd heel traag en er wordt niet 1 maar meerdere datum geselecteerd/gefilterd. (dus niet goed)
Wanneer je op de slicer klikt pakt die zoals hoort alleen de data die van die datum en tijd is.
Via de makroknop "Filter pivottbl" probeer ik de slicer/draaitabel naar de laatste Datum/tijd te gaan maar kom er niet uit.
Iemand een idee, oefenfile bijgevoegd.

Gr.Tonnie
 

Bijlagen

  • Telling.xlsm
    217,1 KB · Weergaven: 50
Deze doet het beter (werkt met het slicercache object):
Code:
Sub Filter_PivotField()
'Description: Filter a pivot table or slicer for a specific date or period
'Source: jkp-ads.com/articles/slicers04.asp
    Dim sFilterCrit As String
    Dim oSc As SlicerCache
    Dim oSi As SlicerItem
    'Set the variables
    sFilterCrit = ThisWorkbook.Worksheets("View").Range("F25").Text
    Set oSc = ThisWorkbook.SlicerCaches("Slicer_Invoer_Verwerkt")

    'Clear all filter of the pivotfield
    oSc.ClearAllFilters

    'Loop through pivot items of the pivot field
    'Hide or filter out items that do not match the criteria
    For Each oSi In oSc.SlicerItems
        If Not oSi.Name Like sFilterCrit & "*" Then
            oSi.Selected = False
        Else
        End If
    Next


End Sub
 
Super bedankt voor de hulp,
Echter werkt dat wel erg traag, is er ook een andere manier om een snelle selectie te maken. Ben echter al zeer blij dat er een oplossing is maar ben bang dat het nog veel langer gaat duren als er veel data is, nu staan er maar een paar regels in.
 
IK zou het nu even niet weten. Mogelijk door creenupdating en herberekenen tijdelijk uit te zetten?
 
In welke module is wat te vinden? Bij het doorlopen van een Slicer of een Filter wordt elke keer de draaitabel ververst en dit geeft de vertraging denk ik. Hoe dat uit te zetten is heb nog niet kunnen vinden.
 
@VenA: Als je zoekt op de macronaam uit mijn post vind je hem wel :)
@Exceltonny: het is een goede gewoonte om je modules begrijpelijke namen te geven (en code dusdanig te groeperen dat dat wat bij elkaar hoort in 1 module staat).
 
IK zou het nu even niet weten. Mogelijk door creenupdating en herberekenen tijdelijk uit te zetten?

Inmiddels overbodige makro's VBA modules verwijderd, de code werkt soms wel en soms niet.
Soms filtert hij de laatst ingevoerde en bij een nieuwe ingave wordt de filter weer op alles zichtbaar gezet.
Wat het erge is bij het uitvoeren van de VBA code duurt het veel en veel te lang alvorens hij de laatst ingevoerde filtert.
Hoop dat iemand dit kan oplossen, zou er erg mee geholpen zijn want moet dit gebruiken voor mijn werk.
Nogmaals het bestand bijgevoegd zoals deze nu is.

Groetjes,


Bekijk bijlage Telling.xlsm
 
Laatst bewerkt:
Het hele opschonen is in het bestand niet te vinden.
Knipsel.PNG

Als je alleen de meest actuele gegevens wil zien waar heb je de draaitabel en slicers dan voor nodig? Als je gebruik maakt van echte tabellen kan je daar ook de grafieken aan koppelen. Je kan ook een dataset ophalen dmv het geavanceerde filter en hier de grafieken aan koppelen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan