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

Macro inkorten

Status
Niet open voor verdere reacties.

candyman1985

Gebruiker
Lid geworden
18 okt 2006
Berichten
81
Hey medeforummers.

ik heb in mijn macro bijgaande formule staan:
Code:
With ActiveSheet.PivotTables("Draaitabel1").PivotFields("Medew.")
        .PivotItems("Jo").Visible = True
        .PivotItems("Leon").Visible = False
        .PivotItems("Rob").Visible = False
        .PivotItems("Hubert").Visible = False
        .PivotItems("Marion").Visible = False
        .PivotItems("Silvie").Visible = False
        .PivotItems("Roger").Visible = False
        .PivotItems("Anouk").Visible = False
        .PivotItems("Martijn").Visible = False
        .PivotItems("Ruud").Visible = False
        .PivotItems("Norma").Visible = False
        .PivotItems("Diederik").Visible = False
        .PivotItems("Shirley").Visible = False
        .PivotItems("Michiel").Visible = False
        .PivotItems("Wiel").Visible = False
        .PivotItems("Michel").Visible = False
        .PivotItems("Onbekend").Visible = False
        .PivotItems("").Visible = False
        
      
   
    End With

Is het mogelijk om korter op te schrijven dat ik alleen "jo" geselecteerd wil hebben?
 
Probeer eens iets als dit :

Code:
For Each pi In PivotTables("Draaitabel1").PivotFields("Medew.").PivotItems
  If PivotItem.Name = "Jo" Then
    pi.visible = True
  Else
    pi.visible = Fale
  End If
Next pi
 
Laatst bewerkt:
Thnx :)
Dat scheelt al een hoop.

Heb nog zo een leuke:
Code:
=MAX(0;((ALS(EN($I641>=AU$2;$I641<(AU$2+1));ALS($Q641<$R641;$Q641;$R641);0))+(ALS(EN($V641>AU$2;AU$2>$V641;($Q641-SOM(AM641:AT641))>$R641);$R641;(ALS(EN($V641>AU$2;AU$2>$I641);ALS(($Q641-SOM(AM641:AT641))>$R641;$R641;$Q641-SOM(AM641:AT641));0)))))-ALS(AANTAL.ALS($P$2:$P641;$P641)=AANTAL.ALS($P641;$P641);0;SOM.ALS($P$2:$P640;$P641;AU$2:AU639)))
 
Probeer eens iets als dit :

Code:
For Each pi In PivotTables("Draaitabel1").PivotFields("Medew.").PivotItems
  If PivotItem.Name = "Jo" Then
    pi.visible = True
  Else
    pi.visible = Fale
  End If
Next pi

Hm, als ik het bij meerdere doe zegt hij:

Compileerfout: Sub of Function is niet gedefinieerd
 
Als je met 'meerdere' andere draaitabellen bedoelt, staan deze dan op een ander werkblad ? Zo ja, kopieer dan de code naar het object van het andere werkblad, en pas eventueel de naam van de draaitabel aan.

Erik
 
Ik heb maar 1 draaitabel.
Aan de hand van Userforms in visual basic kun je door middel van een klik voor een bepaalde waarde per vel kiezen.
Als ik dit met alleen Jo doe gaat het goed. Voer ik de formule echter door naar de andere namen krijgt hij de foutmelding.
 
Ik heb de macro op een andere manier sneller gekregen.
Door het toevoegen van:

Code:
 With Application
    .EnableEvents = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
  End With


MACRO

 With Application
    .EnableEvents = True
    .ScreenUpdating = True     End With

Nu rekent hij het niet meer automatisch uit, wat in dit geval ook niet nodig is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan