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

Mbv vba rij- en kolomvelden verwijderen uit draaitabel

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
Hallo,

Mbv van onderstaande code wil ik velden die geselecteerd zijn al kolom- of rij-velden verwijderen uit de draaitabel. Ik krijg steeds een foutmelding, zie afb-1.jpg

Omdat ik er zelf niet uitkom wil ik beroep doen op jullie kennis!

Alvast bedankt!!!

Code:
Sub RemoveAllFieldsRow()
Dim pt As PivotTable
Dim pf As PivotField
Dim lRmv As Long

Set pt = ActiveSheet.PivotTables(1)

For Each pf In pt.RowFields
  lRmv = vbYes
  If pf.Name = "Data" Or pf.Name = "Values" Then
    lRmv = MsgBox("Click Yes to remove Values field from Row area." _
      & vbCrLf _
      & "Click No to keep the Values field.", _
        vbQuestion + vbYesNo, "Remove Values?")
  End If
  If lRmv = vbYes Then
    pf.Orientation = xlHidden
  End If
Next pf

End Sub
 

Bijlagen

  • Naamloos.png
    Naamloos.png
    4,2 KB · Weergaven: 22
Hallo jan Karel,

Bedankt voor je reactie.

Spijtig genoeg werkt het bij mij niet. Ik heb het ook getest met een pivottable gemaakt van data die op een excel-tabblad staan, maar bij mij staan komen ze uit een tabel (SQL-server cube).
 
Aha, kennelijk een OLAP kubus of powerpivot draaitabel. Je moet de CubeFields doorlopen en pf declareren als CubeField.
 
Beste SNB,

Heeft dat zin om bij dit probleem een bestand toe te voegen? De Excel is gekoppeld aan een SQL-Server en ik weet haast zeker dat de meeste menden dat niet hebben staan, laat staan op dezelfde manier een cube gedefinieerd hebben zoals bij de gebruiker...

Ik zou anders zeker een bestand toegevoegd hebben...
 
Deze gegevens had je dan in de beginvraag kunnen zetten; nu kwam JKP er pas inferentieel achter.
 
Dit is de code geworden en werkt!

Allen bedankt voor de reactie.


Code:
Sub RemoveAllFieldsRow()
Dim pt As PivotTable
Dim pf As CubeField

Set pt = ActiveSheet.PivotTables(1)

    Set pt = ActiveSheet.PivotTables(1)
    
    For Each pf In pt.CubeFields
        If pf.Orientation = 1 Then
            pf.Orientation = xlHidden
        End If
    Next pf
End Sub

Sub RemoveAllFieldsCol()
Dim pt As PivotTable
Dim pf As CubeField

    Set pt = ActiveSheet.PivotTables(1)
    
    For Each pf In pt.CubeFields
        If pf.Orientation = 2 Then
            pf.Orientation = xlHidden
        End If
    Next pf
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan