@ JEC,
Aan het ontbreken van Databodyrange in mijn code heb je ongetwijfeld ook gemerkt dat ik het mezelf zo makkelijk mogelijk had gemaakt (stukje code gekopieerd dus uit een eerder project van en voor mezelf waarin ik niet alle kolommen uit een tabel in mijn listbox moest opnemen, en daarbij niet echt nagedacht).
Als je jouw volledige code achter je userform vervangt door onderstaande heb je een betere zoekfunctie
Ben je daar wel zeker van?
Zoeken uitbreiden naar meerdere kolommen is ook eenvoudig te realiseren binnen mijn werkwijze: "If InStr(full_arr(i, 1), txt_zoek) Then" vervangen door "If InStr(full_arr(i, 1), txt_zoek) Or InStr(full_arr(i, 2), txt_zoek) Then" volstaat. Ik maak trouwens ook dikwijls gebruik van méérdere zoekvelden (op zoek naar een Annita Van den Berghe uit Oosterzele zijn dat er 3 - gdpr indachtig bestáát ze dus niet).
Dat het gewoon kán is uiteraard geen reden om hierop terug te komen (het is niet mijn gewoonte om absoluut gelijk te willen hebben). Wel belangrijk is: met je RemoveItem-methode heb je inderdaad maar één loop nodig, maar of dat volstaat om het efficiënter te noemen is nogal kort door de bocht. Hoewel ik van 2 loops gebruik maak gaat dat aanzienlijk sneller. Ik werk vaak met enorme gegevenstabellen en heb dat meermaals ervaren.
Ik heb deze ervaring natuurlijk ook op het huidige project losgelaten door de tabel wat langer te maken, en met amper
100.000 records gaat het met RemoveItem al enerverend traag. De mijne gaat dan ook niet aan lichtsnelheid, hoor, maar het verschil is meer dan de moeite.
No hard feelings, hoop ik? In elk geval niet van mijn kant! Misschien krijg je wel zin om zelf eens de vergelijking te maken?
En in een volgende stap samen zoeken of het nog sneller kan?
Mvg,
Molly