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

Geavanceerd zoeken in extern werkmap

Status
Niet open voor verdere reacties.

mvanbe

Gebruiker
Lid geworden
7 mrt 2018
Berichten
87
Goedenavond,

De afgelopen dagen ben ik enorm geholpen op dit forum. Met mijn voorlopig laatste en misschien wel meest ingewikkelde verzoek loop ik alweer enige tijd op vast. Mijn doel is om in mijn werkmap een koppeling te maken met een Excel database bestand die ik regelmatig update. Nu wil ik graag in mijn hoofdbestand op regelniveau kunnen zoeken naar overeenkomsten en de resultaten laten terugkoppelen.

In mijn bijgevoegd kopie van het hoofdbestand is op E16 een object omschreven. Nu wil ik in mijn database kijken of hiervan één of meerdere overeenkomsten zijn is met de daarbij behorende gegevens. Om het zo helder mogelijk te omschrijven een aantal uitgangspunten:

- Als er voor het eerst gebruik gemaakt wordt van deze functie moet via een filebrowser eenmalig het database bestand geselecteerd worden (juiste pad).
- De locatie blijft actief in het geheugen en wordt voor iedere zoekopdracht gebruikt
- Op basis van de gegeven omschrijving wordt er gezocht naar overeenkomsten in het database bestand (kolom fabrikant). Voor de beste zoekresultaten moet de omschrijving wellicht handmatig gecorrigeerd worden in een messagebox?; (enkel op merk/fabrikant)
- De zoekresultaten bestaande uit één of meerdere rijen en bij voorkeur kolom C/D/E/F/G/H (of volledig om moeite te besparen) worden gepresenteerd in een nieuw Excel werkmap
- Bij nieuwe zoekopdrachten worden het vorig gecreërde werkmap qua inhoud overschreven

Zijn al deze wensen uberhaupt te combineren in één code? Na uren zoektocht kom ik verschillende resultaten tegen die ieder wat bied van mijn wensen. Het samenvoegen van deze code plus verder ontwikkelen gaat helaas ver boven mijn kunnen.
Ben benieuwd naar jullie ervaring en mening! Wellicht zie ik een (eenvoudige) oplossing over het hoofd of zijn er andere goede suggesties?

(het geuploade database voorbeeld bestand is in originele staat ca. 70.000 regels)


https://www.extendoffice.com/documents/excel/3354-excel-search-multiple-sheets-workbooks.html

https://stackoverflow.com/questions/19504858/find-all-matches-in-workbook-using-excel-vba

https://stackoverflow.com/questions...lumn-and-copy-the-row-below-the-word-onto-a-n
 

Bijlagen

  • Database voorbeeld.xlsx
    32 KB · Weergaven: 38
  • Hoofdbestand voorbeeld.xlsx
    11,5 KB · Weergaven: 39
Laatst bewerkt:
Niemand die hier een idee over heeft of vraag ik teveel?

Inmiddels zelf bezig met samenvoegen van codes maar nog geen werkend resultaat
 
Ik heb ideeën genoeg maar hier totaal geen verstand van. Misschien was jouw inleiding een soort voorspelling. "Met mijn voorlopig laatste en misschien wel meest ingewikkelde verzoek loop ik alweer enige tijd op vast." Jij vervolgt met: "Zijn al deze wensen uberhaupt te combineren in één code?" Dan schrijf je: "Na uren zoektocht kom ik verschillende resultaten tegen die ieder wat bied van mijn wensen. Het samenvoegen van deze code plus verder ontwikkelen gaat helaas ver boven mijn kunnen." Je eindigt met: "Wellicht zie ik een (eenvoudige) oplossing over het hoofd" Dat laatste is wel heel vreemd. Of je teveel vraagt weet ik niet, maar mogelijk kunnen experts daar een antwoord op geven dan heb jij duidelijkheid.
 
Laatst bewerkt:
Niemand die hier een idee over heeft of vraag ik teveel?

Inmiddels zelf bezig met samenvoegen van codes maar nog geen werkend resultaat

Ik ga het bekijken ... maar geef me even tijd : geen oplossing vanavond nog hé ...
 
Eén zaak is al zeker te bekijken : hoe gestandardiseerd zijn je omschrijvingen...
Ik zie in E16 vb wel de fabrikant en dan het type, en dan nog een vermelding van 'kruistafel' en dat in flowing text.

Is dat altijd zo ? fabrikant, gevolgd door type ? en staat er altijd het woordje 'type' en dan gevolgd door de aanduiding ?
Natuurlijk kan je maar zoeken in zoverre als je overeenkomsten hebt tussen omschrijving en database : als kruistafel niet staat in de database kan je uiteraard daarop niet zoeken ...

Kan die omschrijving en die database niet gewoon op mekaar afgestemd worden vb. Fabrikant / type / model ... in beide in zelfde volgorde ?
 
voor het gemak heb ik de 2 files in 1 gecombineerd, nu voor het testen.
Dat kan straks zo terug naar 2.

Verder heeft Senso me, zoals altijd, de goeie richting uitgestuurd met zijn tips.

Er wordt overeenkomsten gezocht, je zoektekst moet wel een beetje meer gestructureerd zijn, tot 4 zoektermen gescheiden door een komma
1e zoekterm is merk, 2e wordt niet gebruikt tijdens het zoeken, 3e is type en 4e is een verdere detail

Als resultaat krijg je de zoveelste rij uit de database-tabel.
Is dat resultaat uniek, dan ben je vertrokken, anders worden die daar opgesomd en stopt het daar.
 

Bijlagen

  • Hoofdbestand voorbeeld.xlsb
    43,5 KB · Weergaven: 39
Laatst bewerkt:
@mvanbe Uiteraard is het niet de bedoeling hier met 2, uiteenlopende invalshoeken aan te zitten werken. Ik laat @cow18 dus maar even begaan en leg het opzij.
Als je daar de oplossing krijgt aangereikt, des te beter.
Heb je mij nog nodig dan hoor ik het wel.
 
@Digicafee, ik sta anders wel open voor een andere invalshoek.
Ik heb de zoektekst wel eventjes lichtjes gestandaardiseerd, om zo resultaten te boeken via een UDF.
Elke effectief andere oplossing, met toegevoegde waarde en zonder overbodige bla bla bla, mag je hier toevoegen.
Ik weet dat ik je zulke bijdragen kan leveren.
 
Ik vraag me eigenlijk af (en heb dat aan TS gevraagd maar nog géén antwoord) of hij die zoektermen in het hoofdbestand wel kàn aanpassen !
Heb het idee dat dit een soort catalogus is, waar hij dan uit wil kiezen.
Daarmee staat of valt natuurlijk elke mogelijkheid tot zoeken ...

@mvanbe : kan je dat even uitklaren aub ? Kunnen die beschrijvingen in je hoofdbestand worden aangepast ? Zoals Cow18 overigens heeft gedaan...
 
Excuses voor mijn vertraagde reactie. Ter aanvulling;

Het hoofdbestand is mijn eigen inventarisatie en dus volledig aanpasbaar. Sommige objecten die hierin zijn omschreven wil ik opzoeken in mijn database met opbrengsten; omdat er een grote variatie bestaat zijn de beste zoekresultaten te krijgen door enkel op fabrikant te zoeken. (de ideale wereld zou bestaan uit een messagebox waarin een kopie van de opschrijving staat en waar de zoekopdracht aangepast kan worden)

De zoekresultaten zouden dan in een nieuw bestand afgebeeld moeten worden en met iedere zoekopdracht overschreven worden. In onderstaande link wordt er min of meer een oplossing aangedragen
https://www.get-digital-help.com/search-all-workbooks-in-a-folder/
"Search multiple strings and return corresponding value(s) on the same row""

Bij mij zou er enkel in één bestand gezocht moeten worden
De bestandslocatie van de database zou eenmalig geselecteerd moeten worden en bij iedere zoekopdracht opnieuw gebruikt worden.
De zoekopdracht kan bijvoorbeeld uitgevoerd worden door de actieve cel (omschrijving) te koppelen aan een button; bij indrukken verschijnt er een messagebox waarin de inhoud van de actieve cel aangepast kan worden (enkel fabrikant; "Schaublin" bijvoorbeeld)
Deze zoekopdracht vind plaats in de Database
Resultaten op fabrikant worden getoond in een nieuwe werkmap; en dan de volledige rij

Hoop dat ik zo wat duidelijker ben.
 
zie bijlage, werkt met geavanceerd filteren, lees eventueel de help daarvoor.
Vul in tabblad "gefilterd" waarop je wenst te filteren.

1. dus voor de eenvoud maak eerst rij 3 leeg.
Je zoekt nu op een "Cazeneuve" type "HB 575" met een "heidenhaim" erin (vandaar die "*" ervoor en erna)
klik op de groene knop en alle rijen die aan die criteria voldoen komen er onder

2. je zal opmerken dat er toevallig ook rijen met "HB575", die ook zouden voldoen !!!
Belang van consistente gegevens !
Als we nog een 2e rij zouden gebruiken, ziet de uitgebreide filter dat als een "OF"
Dus vullen we daar opnieuw "Cazeneuve" en nu type "HB575" die ook een "heidenhaim" heeft en op de groene knop drukken

Je kan zo voor elke kolom een criterium invoeren.
Merk op, in kolom F heb ik een 2e keer "omschrijving" gebruikt
Tik daar nu even "*draailengte*" in (op beide rijen als je 2 rijen gebruikt).
Deze constructie moet je zien als een "EN", dus het moet zowel een "heidenhaim" als een "draailengte" in de omschrijving staan

Het is even wennen om straks bij complexere opdrachten die "EN" en die "OF" gepast te combineren.
Je kan tig rijen nog toevoegen onder de huidige criteria, maar dan verlies je snel het overzicht.
ik denk dat je het snel eenvoudig zal houden.
Voor de proef zou je bijvoorbeeld alle "nederlandse Aciera's" (in de 1e rij) of de "zwitserse Caseneuves" (in de 2e rij) kunnen opvragen.
Je kan ook langzaam beginnen opbouwen, dus eerst de aciera's en dan geleidelijk aan strenger worden.

Straks kan je de knop ook door een change-event vervangen
 

Bijlagen

  • Hoofdbestand voorbeeld (1).xlsb
    51,5 KB · Weergaven: 31
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan