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

Autofilter in een draaitabel

Status
Niet open voor verdere reacties.

Chocka

Gebruiker
Lid geworden
6 jun 2004
Berichten
151
In bijgevoegd "voorbeeld" heb ik klein gedeeld van de gehele draaitabel genomen. De gehele draaitabel bestaat uit ruim 2500 regels waarvan er vele zijn welke per saldo op nul uitkomen.

Nu had ik graag een autofilter op cel "Totaal" willen plaatsen, zodat ik alleen de cellen te zien krijg waarbij de waarde ongelijk is aan 0 (nul)

Maar zodra ik in de draaitabel kom, kan ik geen autofilter instellen. Welike optie kan ik hiervoor gebruiken bij een draaitabel???

(PS Let op! Bijgevoegd bestand is een omgebouwde versie van de originele draaitabel.)
 

Bijlagen

Code:
Sub VerbergNullen()
'***************************************************************'
'let op : zorg dat de begincel van je draaitabel juist is !!!!! '
'***************************************************************'

  Dim Begincel As Range, c As Range, it As PivotItem
  Set Begincel = Sheets("Blad2").Range("A3")               'de begincel van je draaitabel goed vastleggen
  With Begincel.PivotTable.PivotFields("Omschrijving")
    For Each it In .PivotItems                             'loop alle items van Omschrijving af
      .PivotItems(it.Name).Visible = True                  'eerst zichtbaar maken
      Set c = Begincel.PivotTable.GetPivotData("Totaal", "Omschrijving", it.Name)  'zoek bereik van gegevensitem op
      .PivotItems(it.Name).Visible = (c.Value <> 0)        'alleen zichtbaar als <>0
    Next
  End With
End Sub
 
Mij lukt het wel:shocked:

Of bedoel je iets anders?

gr wim

Ik wist dat er iemand met dit antwoord zou komen, maar daarom had ik er al bijgezet:

(PS Let op! Bijgevoegd bestand is een omgebouwde versie van de originele draaitabel.)

Oftewel het origineel is vele malen groter dan 100kb en kan ik hier dus niet plaatsen als bijlage. Dus had ik een verkorte versie gemaakt met knippen/plakken speciaal op waarden.

Ja en dan is alles mogelijk.

Maar probeer zelf maar eens een draaitabel te maken en hetzelfde toe te passen met die autofilter als dat je nu ook hebt gedaan. En daar zit de kneep van het probleem, want dan lukt het niet.
 
Code:
Sub VerbergNullen()
'***************************************************************'
'let op : zorg dat de begincel van je draaitabel juist is !!!!! '
'***************************************************************'

  Dim Begincel As Range, c As Range, it As PivotItem
  Set Begincel = Sheets("Blad2").Range("A3")               'de begincel van je draaitabel goed vastleggen
  With Begincel.PivotTable.PivotFields("Omschrijving")
    For Each it In .PivotItems                             'loop alle items van Omschrijving af
      .PivotItems(it.Name).Visible = True                  'eerst zichtbaar maken
      Set c = Begincel.PivotTable.GetPivotData("Totaal", "Omschrijving", it.Name)  'zoek bereik van gegevensitem op
      .PivotItems(it.Name).Visible = (c.Value <> 0)        'alleen zichtbaar als <>0
    Next
  End With
End Sub

De oroginele draaitabel staat in dezelfde cel als het voorbeeld, dus heb ik van bovenstaande een macro aangemaakt. Maar daarop geeft die een foutmelding Fout 1004 tijdens uitvoering en er komt een geel pijltje voor deze regel te staan:

Set c = Begincel.PivotTable.GetPivotData("Totaal", "Omschrijving", it.Name)

Sorry, maar ik heb geen inhoudelijke kennis van VBA (Helaas, nog niet)
 
Work-around: Selecteer te beginnen in de cel rechts van de kolomkop Totaal (C4), daarna de 2 cellen Totaal en Omschrijving. Je hebt nu 3 cellen geselecteerd (A4:C4) en kunt nu wel een filter toepassen.

Andere mogelijkheid in Excel 2007:
- Rapport filter toepassen, waarbij je alle velden selecteert, behalve 0.
In andere versies werkt dit niet, omdat je dan maar 1 waarde, of alles, kunt selecteren.
 
Work-around: Selecteer te beginnen in de cel rechts van de kolomkop Totaal (C4), daarna de 2 cellen Totaal en Omschrijving. Je hebt nu 3 cellen geselecteerd (A4:C4) en kunt nu wel een filter toepassen.

Andere mogelijkheid in Excel 2007:
- Rapport filter toepassen, waarbij je alle velden selecteert, behalve 0.
In andere versies werkt dit niet, omdat je dan maar 1 waarde, of alles, kunt selecteren.

Nee, ik heb versie 2003, maar ik heb je uitleg geprobeerd in de originele draaitabel maar zonder resultaat.
 
Belangrijk is dat je van rechts naar links de cellen selekteert en begint net buiten de draaitabel. Dit werkt altijd.

Hier een voorbeeld bestand:
 

Bijlagen

Dat meen je niet, werkelijk waar. Zo simpel had ik het niet verwacht, maar het werkt inderdaad.

Bedankt en fijne feestdagen gewenst.
 
inderdaad autofilter werkt zo, zolang je niet begint met de hand bepaalde onderdelen in je omschrijving wilt verbergen, dan ga je de mist in. Dat is het gevaar als je 2 instrumenten door elkaar gaat gebruiken.
bijlage met macro, de draaitabel is gemaakt op basis van jouw gegevens, dus moet je eigenlijk eerst je draaitabel opnieuw aanmaken met jouw gegevens. Als je dan de begincel van de draaitabel die je ziet staan in de wizzard netjes aanpast in
Code:
Set Draaitabel = [COLOR="Red"]Sheets("Blad2").Range("A4").[/COLOR]PivotTable  'de begincel van je draaitabel goed vastleggen
, dan kan je niet missen.
De macro vernieuwt ook eerst de gegevens alvorens items te verbergen
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan