22. november 2012 - 09:39Der er
9 kommentarer og 1 løsning
VBA til at angive Pivot report filter = celle B2
Hej eksperter
Jeg bruger EXCEL 2007.
Jeg har 2 pivottabeller (PivotTable1 og PivotTable2)i ét excel sheet (Sheet1). Jeg vil gerne i celle B2 kunne skrive et kontonr. og via en VBA kunne angive at Pivot Report Filteret i begge pivottabeller skal være lig med værdien i celle B2.
Nogen der kan hjælpe med en simpel VBA kode på det??
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo End_Change Dim watchCell As Range
watchCell = Range(<celle>) If (Target = watchCell) Then ActiveSheet.PivotTables(<pivotnavn>).PivotFields(<pivotfelt>).ClearAllFilters ActiveSheet.PivotTables(<pivotnavn>).PivotFields(<pivotfelt>).PivotFilters.Add Type:=xlCaptionEquals, Value1:=watchCell.Value End If End_Change: End Sub
<celle> er den celle du vil overvåge. Eks.: "B4" <pivotnavn> er navnet på den pivottabel som du vil sætte filter på. Eks.: "PivotTable1" <pivotfelt> er navnet på det felt der skal filteres i. Eks.: "konto nr."
Jeg har åbnet mig dokument, indskrevet kontonr. i celle C1. Åbnet Microsoft Visual Basic -> gået til mit sheet hvor pivottabeller er i ("PRINT") -> kopieret din VBA kode ind -> ændret navne på celle, pivotnavn og pivotfelt så VBA'en ser ud som følger:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo End_Change Dim watchCell As Range
watchCell = Range("C1") If (Target = watchCell) Then ActiveSheet.PivotTables("PivotTable1").PivotFields("CC").ClearAllFilters ActiveSheet.PivotTables("PivotTable1").PivotFields("CC").PivotFilters.Add Type:=xlCaptionEquals, Value1:=watchCell.Value End If End_Change: End Sub
MEN der sker ikke noget når jeg prøver at køre den....og det er også som om at den ikke er tilgængelig til at tilknytte til en knap og jeg kan heller ikke se den under "View Macros" (Alt+F8.
Du skal først skrive kontonummeret ind EFTER at du har kopieret koden ind. Det er ikke en makro du skal køre selv (det kan jeg godt lave den om til hvis du vil have det).
Men derimod gør den det at hver gang du ændrer i celle C1, så opdaterer den filteret i din pivottabel automatisk.
aha, ok. Men der sker bare ikke noget når jeg ændre kontonummere i celle C1.... Og jeg har "enable macros" og sat til "automatic calculation" Er det korrekt at både celle, PivotTables og PivotFields skal angivet med " " om?
Da Xenoxsis endnu ikke har vendt tilbage, lukker jeg spørgsmålet
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.