Goedendag allen,
Ik ben geen expert met vba, dus mogelijk zijn mijn gebruikte codes niet 'optimaal', excuses daarvoor alvast. Ik weet dat dit soms een doorn in het oog kan zijn voor de meer gevorderden onder ons
zie de volgende (werkende) code:
Met deze code lukt het mij om een draaitabelveld te 'filteren' op de waardes die zijn opgeslagen in de (als ik het goed zeg) statische array-variabele 'nummers'. Dit zou ideaal zijn als ik elke keer op precies 4 nummers zou moeten 'filteren'. Nu is het zo dat het elke keer om een ander aantal nummes gaat. Dus heb ik een dynamische array variabele gemaakt: Nummers(N). Ook dit gaat goed. Voor de volledigheid even de code:
Met mijn nieuwe array-variabele kan ik hetzelfde select case truucje echter niet meer uit halen. De volgende code werkt (immers) niet:
Hoe kan ik dit nu het beste aanvliegen?
alvast bedankt!
---edit:
Ik heb ook de volgende code geprobeerd, maar dan geeft hij bij de 2e loop gelijk een foutmelding. Het geel gemarkeerde gedeelte is in dat geval 'PI.visible = false' onder 'Case Else'.
Ik ben geen expert met vba, dus mogelijk zijn mijn gebruikte codes niet 'optimaal', excuses daarvoor alvast. Ik weet dat dit soms een doorn in het oog kan zijn voor de meer gevorderden onder ons
zie de volgende (werkende) code:
Code:
For Each PF In PT.PivotFields
PF.ClearAllFilters
Next PF
Set PF = PT.PivotFields("NR")
For Each PI In PF.PivotItems
Select Case PI.Value
Case nummers(1), nummers(2), nummers(3), nummers(4)
Case Else
PI.Visible = False
End Select
Next PI
Met deze code lukt het mij om een draaitabelveld te 'filteren' op de waardes die zijn opgeslagen in de (als ik het goed zeg) statische array-variabele 'nummers'. Dit zou ideaal zijn als ik elke keer op precies 4 nummers zou moeten 'filteren'. Nu is het zo dat het elke keer om een ander aantal nummes gaat. Dus heb ik een dynamische array variabele gemaakt: Nummers(N). Ook dit gaat goed. Voor de volledigheid even de code:
Code:
Dim nummers As Variant
Dim N As Long
ReDim nummers(1 To 100) As Variant
Set WS = Worksheets("Naam")
LR = WS.Cells(Rows.Count, "A").End(xlUp).Row
N = 1
For i = 6 To LR
If WS.Range("F" & i).Value = WS.Range("D1").value Then
nummers(N) = WS.Range("A" & i).Value
N = N + 1
End If
Next i
ReDim Preserve nummers(1 To N - 1)
Met mijn nieuwe array-variabele kan ik hetzelfde select case truucje echter niet meer uit halen. De volgende code werkt (immers) niet:
Code:
Case nummers(1) to nummers(N)
Hoe kan ik dit nu het beste aanvliegen?
alvast bedankt!
---edit:
Ik heb ook de volgende code geprobeerd, maar dan geeft hij bij de 2e loop gelijk een foutmelding. Het geel gemarkeerde gedeelte is in dat geval 'PI.visible = false' onder 'Case Else'.
Code:
For i = 1 To UBound(nummers)
For Each PI In PF.PivotItems
Select Case PI.Value
Case nummers(i)
If PI.Visible = False Then
PI.Visible = True
End If
Case Else
If PI.Visible = True Then
PI.Visible = False
End If
End Select
Next PI
Next i
Laatst bewerkt: