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

Vba code automatisch filteren in draaitabellen uit celwaarde

Status
Niet open voor verdere reacties.

ExcelJM

Nieuwe gebruiker
Lid geworden
26 apr 2019
Berichten
3
Hallo,

Inmiddels al heel wat afgestruind en volgens mij geen moeilijke vraag, maar het is mij nog niet gelukt. Zegt ongetwijfeld wat over mijn VBA kennis.:rolleyes: Ik maak in excel gebruik van een macro die steeds een nieuwe waarde in het veld D4 zet op het tabblad Details. Wanneer hij dat gedaan heeft maakt hij er aan het eind een htm bestand van. Dit bestand wordt automatisch gepubliceerd op een intranet.

Ik maak met een andere macro gebruik om te filteren in een draaitabel, zie onderstaande. Dit werkt helemaal prima, Maar de waarde die wordt gevuld in de cel D4 wordt niet automatisch gepusht naar de draaitabel. Dus er is wel een nieuwe waarde D4, maar de draaitabel bevat de oude waarde. Deze moet nog ververst worden. Hiervoor moet ik op cel D4 gaan staan en dan 'F2' + 'Enter' doen. Dit moet vast met een kleine toevoeging aan de macro te fixen zijn. Overigens worden alle oplossingsrichtingen erg gewaardeerd.

Ik heb ook een voorbeeldbestand bijgevoegd.

De code die ik nu gebruik heb ik uit een ander topic gehaald, maar deze werkt niet bij mij. Hier ook even een verwijzing naar het oude topic. https://www.helpmij.nl/forum/showth...tisch-filteren-in-draaitabellen-uit-celwaarde

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$4" Then
    On Error Resume Next
    With Sheet5.PivotTables("Draaitabel4").PivotFields("Project")
        .ClearAllFilters
        .PivotFilters.Add Type:=xlCaptionContains, Value1:=Target
    End With
End If
End Sub

Wie kan mij helpen?

Alvast bedankt,
Jos
 

Bijlagen

Zo?
Code:
Sub Macro1()
    ActiveWorkbook.RefreshAll
End Sub
 
D4 verwijst naar "Entiteit" (C21 van Instellingen).
Als je die "entiteit" verandert, dan krijg je daar een change-event, maar geen change-event van jouw D4, logisch !
Dus moet je werken met de change-event van "Entiteit" in dat werkblad "Instellingen" ofwel van een andere event gebruik maken, bv. het worksheet_Activate-event van "Details"

Met je F2+Enter heb je alsnog een change-event gemaakt en die werd dan correct afgehandeld.

Bedankt voor je antwoord, dit heeft me geholpen om het nu te fixen. :)

Op het blad "instellingen" maak ik gebruik van Worksheet_change obv cel C21, waarmee ik tabblad "details" activeer. Vervolgens met de functie Worksheet_activate ververs ik de specifieke cel D4. Dit geeft het gewenste resultaat, waarvoor dank!

Gr. Jos
 
ik dacht dat het gewoon eenvoudiger kan door die change-event te verhuizen naar Instellingen en die D4 te vervangen door C21.
Je kan dan gewoon blijven staan in "instellingen" en achter de schermen wordt je draaitabel toch netjes geüpdatet.

Dat zou ook een oplossing kunnen zijn, maar hoe verwijs ik naar die cel op dat specifieke tabblad? Want het werkt wel, maar alleen offline en wanneer ik het via de server draai, dus was toch nog een tegenvaller. Misschien werkt jouw idee beter :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan