laatste adres waar één bepaalde waarde voorkomt in kolom met verschillende waarden

Status
Niet open voor verdere reacties.

remember

Gebruiker
Lid geworden
26 jul 2014
Berichten
21
Ondanks een zoektocht op het forum, vonden we niks dat ons op weg kon helpen om ons probleem op te lossen. Daarom deze hulpvraag.
Om een grote Excel-tabel te vullen met gegevens die afkomstig zijn van geïmporteerde txt-bestanden zouden we een functie willen maken in VBA die ons op verschillende plaatsen kan helpen. Die txt-bestanden bevatten namelijk veel info die niet onmiddellijk in tabelvorm staat maar die wel in een min of meer vaste structuur voorkomt met vaak weerkerende vaste begrippen waarop we ons kunnen richten.

Bedoeling is om in VBA voor Excel 2010 één functie te maken die vertrekkend vanuit specifieke cellen op zoek gaat in één van de geïmporteerde kolommen naar het ADRES van de LAATSTE cel waarin één specifieke waarde voorkomt. Het gaat steeds over de laatste cel die boven de startrij ligt. Dezelfde waarden die onder de startrij liggen moeten genegeerd worden.
Op basis van dat adresresultaat willen we met de functies "indirect" en "verschuiving" (offset), de waarden weergeven van andere cellen die daar boven of naast liggen.
Dit alles wordt een onderdeel van een grotere macro die uiteindelijk een uitgebreide database produceert.

Ter verduidelijking een voorbeeldje in bijlage. Het verwachte resultaat staat in het rood.

In dit voorbeeld willen we in kolom F en G het automerk en de nummerplaat weergeven die terug te vinden zijn in kolom A boven en naast de laatste cel waarin steeds de vaste term "nummerplaat:" staat. Zulke functie zouden we mits het gebruik van variabelen kunnen hergebruiken op verschillende plaatsen.

In dit geval moet die functie enkel resultaat geven in kolom F en G als in kolom E een "N" of een "F" staat (d.i. de taalcode van de chauffeurs waarvan de namen daarnaast in kolom D staan. Die namen en taalcodes moeten samen met het automerk en de nummerplaat in de uiteindelijke database terecht komen).
Dit laatste is uiteraard gemakkelijk rond de nieuwe functie te bouwen met een simpele als .... dan ... functie.

Hartelijk dank voor uw zeer gewaardeerde hulp.

Update: Een functie die vanaf een bepaalde cel of rij, naar boven toe het aantal rijen telt tot aan de rij waar een specifieke waarde in een bepaalde kolom staat is vermoedelijk een veel snellere methode in een heel lange lijst. In de tussenliggende rijen in die kolom kunnen zowel tekst als getallen als niets staan.
Hopelijk kan iemand me verder helpen met deze topic.
 

Bijlagen

Laatst bewerkt:
Beste,

Dank voor de snelle reactie.
Als we het juist begrijpen, geeft deze functie als resultaat de eerste waarde die ze tegenkomt zoekend van onder naar boven in een opgegeven kolom.
Dat was echter niet de bedoeling. Vaak staat er in die kolommen ook rommel die ons niet interesseert.
We zoeken dus niet de eerste waarde die hij tegenkomt maar we zoeken wel de positie van een bepaalde op te geven "zoekstring".
De waarden die ons eigenlijk interesseren, staan namelijk altijd op een vaste positie tov een welbepaalde gekende string. Zo staat het automerk steeds boven de string "Nummerplaat" en het kenteken zelf steeds in de cel ernaast. In andere gevallen moeten we op zoek naar de string "aankomst" om uiteindelijk de datum te lezen die daar altijd naast staat en zo zijn er tientallen gelijjkaardige situaties met steeds andere "zoekstrings".

Het was de bedoeling een functie te maken die gebruikt maakt van een variabele waarmee we een zoekstring kunnen opgeven en die van onder naar boven in een bepaalde kolom op zoek gaat naar die opgegeven string (zoekterm). Als resultaat zou de functie volgens onze bescheiden mening best het adres of het rijnummer geven van die eerste zoekstring die hij tegenkomt. Als we weten op welke rij de opgegeven zoekterm voor het eerste voorkomt, vinden we de waarden die we eigenlijk zoeken terug met de functies Verschuiving en Indirect.

Hopelijk geeft deze kortere uitleg wel weer wat we wilden bereiken. Onze excuses voor de proza en nogmaals bedankt voor de hulp

Met vriendelijke groeten
 
Plaats dan een duidelijk voorbeeld die een reële situatie weer geeft misschien dat iemand je dan beter kan helpen.


Niels
 
Dat is het inderdaad. Hartelijk dank hiervoor.
Wij sluiten dit topic af.

Met vriendelijke groeten

Paul
 
We heropenen dit topic nog even.
Niels heeft ons alvast zeer goed geholpen met een functie die het adres zoekt van de eerste keer dat een zoekwaarde voorkomt, vertrekkend van een bepaalde rij en zoekend van onder naar boven.
Deze functie "vinden" in bovenstaand bestand "laatste waarde2.xlsm" is nu zo opgebouwd dat er steeds gezocht wordt in kolom A:A.
Is het ook mogelijk om de kolom als argument mee te geven in deze functie zodat dezelfde functie ook voor zoekopdrachten in andere kolommen kan gebruikt worden?

Hartelijk dank bij voorbaat.

Met vriendelijke groeten
Paul
 
Dit is het helemaal. Ongelooflijk bedankt voor de hulp.

Met vriendelijke groeten

Paul
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan