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

Draaitabelkolommen aanpassen dmv VBA

Status
Niet open voor verdere reacties.

flightstar

Gebruiker
Lid geworden
23 mei 2012
Berichten
6
Hallo lezer,

Met dank aan dit forum heb ik veel kunnen leren over het maken van macro`s in Excel, echter is er nog één horde waar ik niet uitkom.

Ik wil door middel van een macro een draaitabel aanpassen. Welke kolommen zichtbaar worden is afhankelijk van "keuzelijst1".
De kolommen die de draaitabel uit de database haalt krijg ik zichtbaar zoals ik dat wil, echter bij het verbergen van de berekende kolom krijg ik de volgende foutmelding:

"Fout 1004 tijdens uitvoering:

Eigenschap Orientation van klasse PivotField kan niet worden ingesteld."


Ik heb een test bestandje gemaakt en bijgevoegd, op 'blad1' staan de 2 mogelijke varianten van de draaitabellen.

Helaas kan ik over het aanpassen van draaitabellen d.m.v. VBA niet veel vinden op internet (of ik gebruik de verkeerde termen). Daarom heb ik deze macro gemaakt door de opneemfunctie van Excel, des te vreemder vind ik het dat VBA er niet doorheen komt.

Alvast bedankt voor de moeite die erin wordt gestoken! Als er vragen zijn dan hoor ik dat graag :)

Groet,
Randy

Bekijk bijlage Test draaitabel aanpassen.zip
 
Kom je hier verder mee?
Code:
ActiveSheet.PivotTables("Draaitabel1").PivotFields( _
        "Opdracht[SIZE=5][COLOR=#ff0000].[/COLOR][/SIZE]").Orientation = xlHidden
    [COLOR=#ff0000]ActiveSheet.PivotTables("Draaitabel1").DataPivotField.Orientation = xlHidden[/COLOR]
Daarna de gewenste pivotfields weer toevoegen.
 
Dankjewel voor je reactie!

De regel:
ActiveSheet.PivotTables("Draaitabel1").DataPivotField.Orientation = xlHidden

is voldoende om alle waarden te verbergen, de regel erboven wordt daardoor overbodig! Vervolgens heb ik de gewenst velden weer toegevoegd!
Dankjewel voor je antwoord!
 
Graag gedaan,

Misschien kun je her resultaat nog eens tonen voor de zoekende.
 
Uiteraard!

Gebruikte code:
Code:
[COLOR="#0000FF"]Sub[/COLOR] Opdracht_tonen()
[COLOR="#008000"]' Schermverversing uitzetten[/COLOR]
Application.ScreenUpdating = False

[COLOR="#008000"]' Weergeven hoeveel in opdracht is gezet

'Alle gegevens verbergen[/COLOR]
    ActiveSheet.PivotTables("Draaitabel1").DataPivotField.Orientation = xlHidden
    
[COLOR="#008000"]'Opdracht gegevens weergeven[/COLOR]
    ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
        "Draaitabel1").PivotFields("Offerte"), "Offerte.", xlSum
    ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
        "Draaitabel1").PivotFields("Opdracht"), _
        "In opdracht incl", xlSum
    ActiveSheet.PivotTables("Draaitabel1").AddDataField ActiveSheet.PivotTables( _
        "Draaitabel1").PivotFields("veldopdracht"), "off - opdr", xlSum

[COLOR="#0000FF"]End Sub[/COLOR]
 

Bijlagen

Laatst bewerkt:
Dank voor het delen.

Als je de screenupdating nog even op false zet is het ook nog plezieriger aan je ogen. ;)
Code:
[COLOR=#0000ff]Sub[/COLOR] Opdracht_tonen()
Application.ScreenUpdating = False
 
Die heb ik standaard altijd in staan ja! Nu voor het testbestand vergeten om die erbij te zetten, in het 'grote' bestand staat hij er wil in :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan