lijst filteren met VBA

Status
Niet open voor verdere reacties.

robier

Gebruiker
Lid geworden
31 mrt 2009
Berichten
12
Beste VBA'ers,

als beginnened VBA 'er heb ik het volgende probleem.
Mijn excel sheet bestaat uit de volgende onderdelen:

onderdeel in gebruik waarde aantal
1 ja x x
2 nee x x
3 nee x x
4 ja x x
5 nee x x

zo heb ik zon 10000 onderdelen... met nog wel meer deelonderwerpen, maar dat is niet zo van belang voor de uitleg.

Nu zou ik graag willen dat VBA een lijst maakt in een formulier met alleen de onderdelen die in de "ja" hebben in de kolom in gebruik... iets met een listbox ofzo?

Wie kan me helpen?

bijvoorbaat dank!

MvG,

Robier
 
Laatst bewerkt:
robier,

Dit kun je toch ook met het filter doen of zie ik het verkeerd?
 
Ja dat klopt, maar als ik op meerdere criteria ga zoeken dan loopt alles in de soep in excel (vanwege de vele formules etc in dit bestand/sheet).
Is het dan een moeilijk verhaal om zoeiets in VBA te maken?
 
Laatst bewerkt:
Dat zal best wel kunnen maar dan heb je wel een expert nodig, ik ben maar een amateur.

Je wil namelijk niet alleen op ja of nee filteren maar zo lees ik, ook op meerdere criteria.
Ik denk dat het beste is om een voobeeld bestandje te maken met daar in uitgelegd wat er gedaan moet worden.
Dat is vaak veel duidelijker dan een verhaal.

Ik wens je dan ook veel suc6
 
Nee het is de bedoeling dat ik op 1 criteria filter!

maar ik wil uiteindelijk meerdere formulieren maken die apart op verschillende critera filter.

Is het dus mogelijk om op 1 criteria te filteren en de lijst weer te geven in een formulier met VBA?

MVG
 
Filteren doe je op 1 criterium of op 2 (of meer) criteria

Bijvoorbeeld
Filter alle rijen met in kolom B een "X"
Thisworkbook.sheets(1).cells(1,1).currentregion.autofilter 2 ,"X"

kopieer deze gegevens naar een ander gebied (blad2) zodat een aaneengesloten gebied ontstaat
Thisworkbook.sheets(1).cells(1,1).currentregion.specialcells(xlcelltypevisible).copy Thisworkbook.sheets(2).cells(1,1)

Zet alle gegevens in een list box (van de werkset besturingselementen of in een userform) via een matrixvariabele
sq=Thisworkbook.sheets(2).cells(1,1).currentregion
Listbox1.list=sq
 
Laatst bewerkt:
dit werkt goed,

alleen in de excel sheet wordt het filteren ook toegepast, zodat niet alle items meer te zien zijn. Ik snap dat je daar ook naar verwijst in je VBA-code.

Graag zou ik alleen de te filteren items zien in de listbox...

dus nadat het gefilterd is de oorspronkelijke lijst in excel weer weer te geven...

hoe moet ik dat ddan doen...

Sorry als het een stomme vraag is, maar heb nog nooit met deze codes gewerkT!

MvG en alvast bedankt!
 
Je moet autofiler uitzetten in het werkblad waarop het filter is toegepast.
Aansluitend op de vorige suggestie kan dat ook in VBA met

Thisworkbook.sheets(1).cells(1,1).currentregion.autofilter

Overigens heeft de VBEditor een heel uitgebreide hulpfunktie !
Type in de VBeditor autofilter, markeer dit woord en sla op knop F1.
 
Ja, sorry ik was er al achter.

nu heb ik alleen het volgende probleem.

De door u omschreven code werkt perfect als de data sheet bestaat uit alleen values.
Nu is het zo dat mijn sheet (net als de "ja" en "nee" kolom) bestaat uit formules (if then).

ik krgijg dan ook een foutmelding (error 1004; Autofilter method of range class failed)
Is het mogelijk om te filteren als er formules in staan...

Sorry maar dit zal echt mijn laaste vraag hier over zijn. Zelf denk ik dat ik moet aangeven in de autofilter-code dat hij de waarden in de cel moet zien als values en niet als formules?...ik kan hier echter niets over vinden...

MvG
 
Een autofilter filtert ook cellen met formules.
 
Je heb een lege kolom staan in het gebied waarop je wil filteren.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan