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