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

Alternatief voor sorteren en draaitabellen

Status
Niet open voor verdere reacties.

HugoWouda

Gebruiker
Lid geworden
24 mrt 2014
Berichten
10
Ik zit met het volgende excel probleem (in de bijlage een voorbeeld ter verduidelijking).

In 'blad 1' heb ik een database met verschillende activiteiten, data etc. Nu wil ik in 'blad 2' een specifieke activiteit oproepen (zonder sorteren/filteren van mijn tabel of draaitabellen) met bijbehorende gegevens. De tabel in 'blad 2' moet automatisch de gegevens selecteren die bij de activiteit horen en de tabel grootte automatisch aanpassen. Is dit mogelijk zonder filteren en draaitabellen.

Alvast hartelijk dank!
 

Bijlagen

Waarom ga je hier niet verder http://www.helpmij.nl/forum/showthread.php/902617-automatische-lijst-maken?

In basis kan het ook wel met formules alleen kan je daar de tabelgrootte niet mee aanpassen. Lees eens wat over filteren en de definitie daarvan. Zonder te filteren (beperken op voorwaarden) krijg je altijd dezelfde gegevens;)

De code van @gast0660 filtert de gegevens dmv een array. Zelf heb ik het autofilter gebruikt. Het geavanceerde filter is hiervoor nog beter geschikt.

Code om de validatielijst op orde te houden
Code:
Private Sub Worksheet_Activate()
Dim j As Long, c00 As String, ar
  ar = Blad1.ListObjects(1).DataBodyRange.Columns(3)
  For j = 1 To UBound(ar)
    If InStr(c00 & ",", "," & ar(j, 1) & ",") = 0 Then c00 = c00 & "," & ar(j, 1)
  Next j
  Range("A1").Validation.Modify 3, 1, 1, Mid(c00, 2)
End Sub

Code na het wijzigen van de validatielijst
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
  Application.ScreenUpdating = False
  If ListObjects(1).ListRows.Count > 0 Then ListObjects(1).DataBodyRange.Delete
  With Blad1.ListObjects(1).DataBodyRange
    .AutoFilter 3, Target
    .SpecialCells(12).Copy ListObjects(1).Range.Cells(2, 1)
    .AutoFilter 3
  End With
End Sub
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan