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

Verticaal zoeken i.c.m. als dan

Han...

Gebruiker
Lid geworden
3 mrt 2024
Berichten
20
Besturingssysteem
Windows 10
Office versie
Office 365
Goedendag,

Wil kan mij hierin een handje helpen?

Zie bijgaand test voorbeeld.

Tabblad Verkort wordt het werkblad.
Tabblad Database is… de database waaruit de gegevens gehaald moeten worden.
(Dit is in werkelijkheid een groot bestand A2 t/m BZ5798)

Mijn bedoeling is dat ik in het Tabblad Verkort op basis van de celwaarde van H1 alleen datgene uit de database krijg te zien die aan de waarde van H1 voldoet.

In dit geval “”gerealiseerd”
Ik wil dan dus eigenlijk alleen maar die 4 regels zien die zijn gerealiseerd.
 

Bijlagen

Dank je jkpieterse
Ik ben een beetje bekend met de filter functie.
Maar bestand is dusdanig groot dat het alsnog onoverzichtelijk is.
De rijen zijn dan wel geselecteerd maar dan zijn er nog zoveel kolommen die ik tijdelijk niet wil zien.
Vandaar het 2e tabblad met een verkorte versie.
 
Laatst bewerkt:
Dank jverkerk
Dit is inderdaad al iets meer wat ik zoek.
En werkt goed.

Ook dank emields.
Werkt ook goed en mijn lay-out blijft dan overeind.


Ga hiermee even aan de slag.
 
Met KIES.KOLOMMEN kun je de gewenste kolommen uit het filterbereik halen, in de gewenste volgorde.

Voor je voorbeeld:
Code:
=KIES.KOLOMMEN(FILTER(Database!A2:.E1000;Database!E2:.E1000=H1;"");2;4;5;3;1)
 

Bijlagen

Laatst bewerkt:
Zoals altijd herleid je de interactie met het werkblad in een verstandig geschreven code tot een minimum.
Zeker in een werkblad met bijna 6K regels vermindert de verwerktijd met een tienvoud (zeker als je de ScreenUpdating aan het begin van de code niet uitschakelt)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [h1]) Is Nothing Then
        [A2].CurrentRegion.Offset(1).ClearContents
        With Sheets("database").ListObjects("Tabel1").DataBodyRange
            Data = Filter(.Parent.Evaluate("Transpose(If(" & .Columns(5).Address & "=""" & Target.Value & """,row(1:" & .Rows.Count & ")))"), False, 0)
            If UBound(Data) = -1 Then Exit Sub
            temp = Application.Index(.Value, Application.Transpose(Data), Array(2, 4, 5, 3, 1))
            [A3].Resize(UBound(temp), 5) = temp
        End With
    End If
End Sub
 
Laatst bewerkt:
Terug
Bovenaan Onderaan