VBA code om filterwaarde kolom L in cel C1 te tonen

Status
Niet open voor verdere reacties.

maus1602

Gebruiker
Lid geworden
8 mrt 2012
Berichten
14
Hallo allemaal,

Ik zoek een VBA code om in cel C1 de gekozen filterwaarde van kolom L te tonen.
In de cellen van kolom L, staat dezelfde gegevensvalidatie als in cel C1 gekozen kan worden.
Wanneer het filterwaarde in kolom L wordt geselecteerd, wil ik deze waarde ook in C1 getoond krijgen.
Andersom graag ook.

Bij voorbeeld,
Als ik in cel C1 via gegevensvalidatie de waarde "B" selecteer, wil ik kolom L gefilterd hebben op waarde "B"
en als ik in kolomcel O7 een filter selecteer, of deze dan in C1 getoond kan worden.


Alvast hartelijk dank voor jullie hulp.
Groet MauriceBekijk bijlage C3filterkolomL.xlsm
 
Laatst bewerkt:
Ik heb het idee dat deze vraag niet compleet is. Om maar 1 waarde in te vullen is ook wel erg summier.

Je hebt er denk ik twee events voor nodig 1 die weet dat er wat gewijzigd is in C1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$C$1" Then Cells(7, 1).CurrentRegion.AutoFilter 15, [C1]
End Sub

En 1 die weet dat je in O7 een andere filterwaarde gekozen hebt. Hiervoor staat een hulpformule in O1 omdat door het wijzigen van een filterwaarde geen event getriggerd wordt.
Code:
Private Sub Worksheet_Calculate()
  Application.EnableEvents = False
    [C1] = Cells(7, 1).CurrentRegion.Offset(1).Columns(15).SpecialCells(12).Cells(1).Value
  Application.EnableEvents = True
End Sub
 

Bijlagen

  • C3filterkolomL.xlsb
    17 KB · Weergaven: 64
Beste VenA,

Je voorbeeld is precies wat ik zoek.
Nu heb ik de code echter in mijn echte bestand geplakt, maar wordt de waarde niet in cel C1 getoond.
In het voorbeeldbestand werkt het wel.

In mijn andere bestand is kolom L kolom G geworden.
Kolom L (15) heb ik in de VBA codes veranderd naar 7.
Filter rij 7 =rij 3.
Je hulpformule heb ik in cel G1 gezet "=SUBTOTAAL(3;G5:G400)".
Het wisselen met de filters in C1 en G3 werkt wel naar behoren.



Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Then Cells(3, 1).CurrentRegion.AutoFilter 7, [C1]
End Sub


Private Sub Worksheet_Calculate()
Application.EnableEvents = False
[C1] = Cells(3, 1).CurrentRegion.Offset(1).Columns(7).SpecialCells(4).Cells(1).Value
Application.EnableEvents = True
End Sub

Waarom blijft de gekozen filterwaarde niet zichtbaar ?
Als ik een filterwaarde selecteer, wordt deze maar een fractie van een seconde getoond in c1 en verdwijnt daarna direct weer.

Groet Maurice
 
Laatst bewerkt:
Je voorbeeld is precies wat ik zoek.
Mooi toch, is ook geschreven voor het bestand dat je geplaatst hebt. Als de echte situatie anders is dan zal je even de code moet doorgronden en aanpassen op de juiste manier.
 
Hallo VenA

Opgelost :thumb:

Mijn aanpassingen waren goed, maar ik moest waarschijnlijk eerst rijfilter uitzetten.
Nadat ik dit gedaan had en in cel C1 een filterwaarde selecteerde, werd de rijfilter automatisch aangezet, kreeg ik kolom G gefilterd op de waarde die ik selecteerde en werd de filterwaarde nu wel getoond in cel C1.

Bedankt voor je hulp.
Zonder je aanvullingen was het nooit gelukt.
Nogmaals dank.
Groet Maurice
 
Laatst bewerkt:
Mooi zo, van zelf wat 'rommelen' leer je over het algemeen toch het meest.:thumb:
 
Zo ist....
Geeft ook het meest bevredigende gevoel....als je zelf iets kunt oplossen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan