Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Fout in HLookup Functie  (gelezen 30103 keer)

0 leden en 1 gast bekijken dit topic.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #15 Gepost op: 18 december 2018, 13:25:42 »
Hallo spyder,
Helemaal mee eens, maar jouw reactie is ondertussen nr. 14 en ik zegde dit al in nr. 2  ;)

SoftAid, kom je verder met mijn voorbeeld uit nr. 12 ?
Tussen haakjes : zonder me verder uit te spreken over de stijl van emields kan ik je inderdaad bevestigen dat zijn voorbeeld niet juist kan werken, en dat je zelf onmiddellijk hebt gezien waarom  :thumbsup:
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline spyder

  • Ambassadeur
  • *****
  • Berichten: 5.265
  • PC probleem zit meestal tussen scherm en rugleun
Re: Fout in HLookup Functie
« Reactie #16 Gepost op: 18 december 2018, 13:37:51 »
Dat had ik gemerkt, maar ik kreeg het idee dat daar overheen gelezen geweest was, omdat er totaal andere reacties op kwamen.  ::)
Windows 7 Ultimate Unknow NLD
Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz 2934
P7P55D-E PRO
NVIDIA GeForce GTX 470 1280MB 1680 x 1050
HD 1 : INTEL SSDSA2M080G2GC (80GB)
HD 2 : ST31500341AS (1,5TB)
HD 3 : ST320006 41AS (2TB)
browser: Maxthon  mail:Thunderbird AV: Bitdefender
Scarlet user

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Fout in HLookup Functie
« Reactie #17 Gepost op: 18 december 2018, 13:57:47 »
De logica van de userform van SoftAid is me ook totaal niet duidelijk, maar SoftAid gaf aan dat het resultaat uit de linkse kolom moet komen. Ik vraag me af of Index - Match dan geen oplossing is?
Hallo Spinneke,
dank om even mee te denken. Die Index of Match had RedHead ook al in een voor mij niet ontleedbare of leesbare formule gezet. Ik ben ook maar een dom blondje, hé  ;D.
Intussen heb ik de koppen in de tabbladen verplaatst naar boven de datums, dus verschuiven is niet meer nodig.

Maar ik wilde weten waarom een "juist geformuleerde" formule (HLookup()) bij mij niet werkte. Als ik het niet zelf kan opbouwen dan heb ik er niets aan, dan leer ik er niet van.

[/quote]
SoftAid, kom je verder met mijn voorbeeld uit nr. 12 ?
Tussen haakjes : zonder me verder uit te spreken over de stijl van emields kan ik je inderdaad bevestigen dat zijn voorbeeld niet juist kan werken, en dat je zelf onmiddellijk hebt gezien waarom  :thumbsup:
Hallo pitufo,
Dank voor het helpen, en helpen doet het zeker. Mogelijk dat ik er een soepje van gemaakt heb en verschillende manieren (om het doel te bereiken) door elkaar gehaspeld heb. Het hele werkstukje is van mijn hand, maar de HLookup formule voor VBA heb ik van het internet, en heb verschillende bronnen vergeleken om zeker te zijn dat er geen foute codes bij stonden.
Microsoft Help: HLookup :Searches for a value in the top row of a table or an array of values, and then returns a value in the same column from a row you specify in the table or array.
[quote: pitufo]: ..denken we ondertussen allemaal dat je eerst in de bovenste rij de kolom wil zoeken waarin de gekozen naam staat, en dan in die kolom de rij wil zoeken waarin het gekozen faktuurnummer staat, om uiteindelijk de datum te vinden die erbij hoort.

Nee, dat doet HLookup niet. Hij gaat vanaf de gekozen cel (eerste argument)(M) met het derde argument naar de opgegeven rij (D) in diezelfde kolom (M).
In het werkboek waar deze Userform en code moeten gebruikt worden, kwam ik zo in een kolom met nummers (die hierbij geen rol spelen), en moest ik een Offset naar rechts maken om de datum (in die rij) te vinden.

Toch ;D. Mijn eerste vraag was zeker duidelijk:
Ik wil een tabblad selecteren met Y (waarde die ik uit de Userform haal, net als M en D)
Dan wil ik in dat tabblad Horizontaal gaan zoeken op Naam (M), dan naar de Rij (D) en dan moet ik de gegevens ophalen van de cel links van (D), en die gegevens (een datum) wil ik in "Rekenblad!D2"

Maar HLookup bleef me foutmeldingen geven (1004) en dus kon ik niet verder en heb jullie hulp ingeroepen.
Ook als ik geen variabelen gebruikte, werkt de formule niet.
datum = Application.WorksheetFunction.HLookup("Jans", ActiveSheet.Range("A1:I5"), 2, False)
intussen heb ik het toch werkend gekregen MET HLookup  8)
Ik was wel afgestapt van die "Offset" door de namen op Rij 1 in dezelfde kolom te zetten als de datums.
Dat was om te testen en het wat gemakkelijker te maken.
Waarschijnlijk lag de grote fout bij de Dimensionering van de variabelen.
Daar heb ik steeds moeite mee, en een fout wordt soms afgestraft met een nietszeggende foutmelding.

Intussen heb ik de macro volledig werkend gekregen, en heb ook de knop van emields in mijn Userform geplakt, om de Form af te sluiten. Waarvoor dank, emields

Maar dit is bijzaak, er komen later nog tientallen andere functie-knoppen bij in die UserForm.

Ik dank iedereen  hartelijk voor het helpen en het mee-denken.

In bijlage een voorbeeldbestandje met HLookup, net zoals ik het wilde, en werkend.

Groeten,

Theo

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #18 Gepost op: 18 december 2018, 14:16:35 »
Hey SoftAid,

Ik moet je nadrukkelijk tegenspreken (en doe dit ENKEL omdat ik weet dat je graag bijleert)

Je ganse uitleg over hlookup, inclusief wat Microsoft daarover zegt, klopt als een bus, en net DAAROM ben je verkeerd bezig.

Uiteraard heb je het nu met hlookup goed gekregen, maar dat komt enkel en alleen omdat je faktuurnummers in de opzoektabellen precies dezelfde zijn als de rijnummers !!!
Dat is in je uiteindelijke werkstuk toch niet de bedoeling ?
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Fout in HLookup Functie
« Reactie #19 Gepost op: 18 december 2018, 14:32:18 »
Ik moet je nadrukkelijk tegenspreken
Dat mag je...   ;D ;D ;D
Uiteraard heb je het nu met hlookup goed gekregen, maar dat komt enkel en alleen omdat je faktuurnummers in de opzoektabellen precies dezelfde zijn als de rijnummers !!!
Dat is echt niet waar. Verander de "zogenaamde" factuurnummers maar in tabbladen 2016, 2017, 2018. Doe er 400 bij  ;D ;D
In kolom C van het Rekenblad komt het "factuur"-nummer dat je ingeeft in de Userform >> Factuurnummer.

Ik zou het niet durven naar buiten brengen als ik niet zeker was dat het correct was...  ;)
Test even en laat iets weten.

BTW: ik zoek maar een basis, die ik begrijp en kan aanpassen. Iets als VLookup. (maar moest nu Horizontaal door de opmaak van mijn werkboek)
Als ik de andere, werkende formules (van RedHead, emields enz) niet begrijp, hoe kan ik ze dan verder uitbreiden?

Groeten,

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #20 Gepost op: 18 december 2018, 14:54:04 »
En toch heb je ongelijk, SoftAid (al durf ik nog enkel met een klein hartje).

Akkoord, als we andere faktuurnummers in de tabellen zetten vind je het nog steeds, maar die gebruik je om IN te gaan zoeken in plaats van WAT. De kwestie is : je BLIJFT zoeken met de waarde die je op het formulier kiest bij 'Faktuurnummer ?'
In je project moeten daar toch ook de echte faktuurnummers komen ? Nu staan daar in feite rijen !

Terug jouw beurt dus  ;D
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Fout in HLookup Functie
« Reactie #21 Gepost op: 18 december 2018, 15:34:36 »
Hallo François,

Tja, ik zet je eerst op het verkeerde been door de getallen 1,2,3 in de kolommen A, C, E van 2016,2017, 2018 te zetten, en gelijktijdig in mijn datasheet (Data) in kolom D ook 1, 2, 3 te zetten (de reeks waaruit je in de ComboBox2 kan kiezen).

Daarom stelde ik voor om de nummers 1,2,3 te vervangen door 401, 402, 403, zodat je zag dat deze niets ter zake doen.
Op het "Rekenblad staat in C1 ook niet "Factuur nummer", er staat "nr."

En die nummers kloppen wel degelijk met de invoer.
Het enige dat ik nog moet veranderen is het Tekstveld in mijn Userform, van "Factuur nummer" moet ik "Volgnummer" maken.
Dat veranderd niets aan de functies, maar zal jou mogelijk, hopelijk op andere gedachten brengen.

Ik ben toch enorm blij dat je het voor mij echt goed wilt hebben, dat is de houding die ik ook van mezelf verwacht  ;D 0:-)

Hartelijk dank voor de hulp.

Theo  :-*

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #22 Gepost op: 18 december 2018, 16:03:13 »
Hoi,

Of het nu faktuurnummer of zomaar "nummer" heet, daar lig ik echt niet van wakker  ;)

Mijn enige bedenking blijft : zal je in je echte project niet moeten zoeken naar bv. nummer 401 ?
Anders hebben we het allemaal constant verkeerd begrepen. Want wat je nu eigenlijk zegt is dat je gewoon naar de 1°, 2°... faktuur van een klant wil zoeken zonder dat het faktuurnummer een rol speelt ?

Ik (en ik niet alleen) denk namelijk al heel de tijd dat je de faktuurnummers van klant X uit jaar Y in je keuzelijst wil krijgen  ???

Want je hebt nu in je voorbeeld telkens maar 3 fakturen per klant per jaar. Maar stel dat het er 30 zijn, hoe relevant is het dan nog om te zeggen dat je zijn 17° faktuur van jaar X op je rekenblad wil zien ?

Het plezantste zou natuurlijk zijn dat we effectief over iets anders aan het praten waren : dan hebben we namelijk allemaal volkomen gelijk  :D
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 257
  • Geslacht: Man
  • Oplossing.be
Re: Fout in HLookup Functie
« Reactie #23 Gepost op: 18 december 2018, 16:57:34 »
op dit voorbeeld zie je het verschil tussen de 2 oplossingen.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Fout in HLookup Functie
« Reactie #24 Gepost op: 18 december 2018, 18:05:13 »
Hallo emields,

jou macro doet toch helemaal niet wat gevraagd wordt !! ?

Lees je de voorgaande reactie's niet? Communiceren is ook een groot deel van de oplossing....  :(

Dag pitufo,


Ik (en ik niet alleen) denk namelijk al heel de tijd dat je de faktuurnummers van klant X uit jaar Y in je keuzelijst wil krijgen  ???
Sorry, maar ik zeg al heel de tijd dat ik een DATUM in mijn Rekenblad wil krijgen.
Citaat
Dan wil ik in dat tabblad (2016 of 2017 of 2018) Horizontaal gaan zoeken op Naam (M), dan naar de Rij (D) en dan moet ik de gegevens ophalen van de cel links van (D), en die gegevens (een datum) wil ik in "Rekenblad!D2"

Ik heb ook al gezegd dat dit een voorbeeldbestandje is, en ik voor het gemak benamingen heb gegeven in bepaalde cellen.
Als ik de echte namen moest gebruiken zou het nog veel ingewikkelder zijn voor jou, geloof me.

Groeten,

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: Fout in HLookup Functie
« Reactie #25 Gepost op: 18 december 2018, 18:13:52 »
Hoi,
@ Theo
Ik hou me ver van deze topic,ik kan beter mijn hand in een wespennest steken denk ik? :-\
De opzet is  zo "not done", maar wie ben ik?
Trouwens, ik snap er geen bal van.
en toch een paar tips.
1. vermijd activate en select,dit is zelden nodig en vertraagt je code big time.
2. Gebruik nooit Add Item of Row Source om een ComboBox of ListBox te vullen.
Het voorbeeld:
Citaat
In bijlage een voorbeeldbestandje met HLookup, net zoals ik het wilde, en werkend.
Nu zonder select activate en andere overbodige code.
Ook worden de nieuw gekozen waarden bijgevoegd ipv overschreven.
(waarom heb ik het gevoel dat ik mijne fierefluiter in een wespennest heb gestoken :'()


Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #26 Gepost op: 18 december 2018, 18:18:51 »
Ja, uiteraard wil je een datum in je rekenblad krijgen, dat heb ik al gans de tijd door.
De vraag is enkel hoe je die gaat zoeken. Sowieso in elk geval op basis van wat in je combobox4 staat. Zou het niet logischer zijn dat daar de faktuurnummers staan (zoals ze in de zoektabellen staan) ?
Voor mij wel, voor jou misschien niet, en dan is het opgelost, zoals ik in mijn vorige post in feite ook al zei.

Ik zal (weet niet of vandaag nog lukt) nog eens een voorbeeldje maken. Heb je daar niets aan voor dit project, dan niet getreurd, misschien vind je er inspiratie in voor een andere gelegenheid.

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 257
  • Geslacht: Man
  • Oplossing.be
Re: Fout in HLookup Functie
« Reactie #27 Gepost op: 18 december 2018, 18:48:49 »
Citaat
Hallo emields,

jou macro doet toch helemaal niet wat gevraagd wordt !! ?

Lees je de voorgaande reactie's niet? Communiceren is ook een groot deel van de oplossing.... 


misschien behoort zeggen wat hij niet doet ook tot communiceren?

Hij plaatst de zoekwaarden en hij plaatst de gezochte datum wat moet hij nog meer doen?

Dat hij het nu onder elkaar zet was enkel om te laten zien dat uw vlook niet werkt als het niet met opgaande nummers nr's of rijen gaat.


Aan uw reacties te zien heb je er zelfs niet naar gekeken.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Fout in HLookup Functie
« Reactie #28 Gepost op: 18 december 2018, 20:02:35 »
Ziezo, SoftAid, 't is gebeurd  :)

Ik heb dus nog een voorbeeldje gemaakt. Zoals gezegd, als het niet binnen je huidige project past, kan je er voor later mogelijk nog iets van meedragen.

Enkel op "2016" heb ik allemaal unieke faktuurnummers en -datums gezet, en heeft niet iedere klant evenveel fakturen (een redelijk waarschijnlijk scenario in het echte leven).

Kijk om te beginnen eens wat er in je combobox4 gebeurt als je op je formulier een andere klant kiest.
Je zal ook zien dat "Rekenblad" niet meer wordt verlaten. De verdere werking spreekt voor zichzelf.
Indien bijkomende uitleg gewenst : één adres  :D

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Fout in HLookup Functie
« Reactie #29 Gepost op: 18 december 2018, 20:39:45 »
Mijn enige bedenking blijft : zal je in je echte project niet moeten zoeken naar bv. nummer 401 ?
In "jaren" (Y) gaat het over honderden tabbladen met ieder:
In "Naam" (M) gaat het over 13 kolommen met ieder:
In "Nr"(D) gaat het over 30 rijen.

Dus verschillende tabbladen met elk een "grid" van A1:M31 (hoofding (Rij 1 meegerekend)
Over andere kolom is een datum. De hoofding is een unieke naam, maar komt op elk tabblad in dezelfde cel terug.
In diezelfde kolom staan er 30 datums.
in de eerste en tussenliggende kolom is een getal vanaf de 2 de rij 1 - 30  Geen hoofding in rij 1

Dus: Als ik een datum wil, dan moet ik het juiste tabblad kiezen (doe ik met invoer Y)
Dan moet ik Hor.Zoeken naar de Naam (invoer M)
Vandaar moet ik in die kolom zoeken naar wat er in de cel (kolom M, rij D) staat, en dit is een datum. Dat is alles wat ik wil.

Dit moet een zoek-tool worden die aan de hand van in te geven waarden een datum weergeeft (datum)

Als het werkt, zoals het nu werkt, kan ik het ook gemakkelijk uitbreiden met andere input, condities.

Er is echt geen sprake van factuurnummers. 401 slaat nergens op. Die heb ik maar aangegeven om jou er van te overtuigen dat 1 in de Data niet 1 was in de volgnummers. Je mag voorbeelden niet te letterlijk nemen. De hele structuur uitleggen zou ook veel te ver gaan, en staat trouwens nog in zijn kinderschoenen. Ik moest dus met een simpel voorbeeld komen. Een factuur-voorbeeld leek me het eenvoudigste.
Sorry als dit je op het verkeerde been heeft gezet.

Groetjes,

Theo

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com