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

Meerdere resultaten weergeven bij zoeken in kolom

  • Onderwerp starter Onderwerp starter Edko
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
toch maar met vba? misschien heb je hier iets aan Bekijk bijlage CSV-Updater met VBA(1.xlsm

je kunt de functie gewoon door trekken .
de functie zoekt naar boven om het kledingstuk te vinden en bepaald aan de hand van het aantal regels dat naar boven gekeken moest worden de maat die hij invult.
als er geen maten meer zijn zet hij een streepje

groet sylvester

ps ik heb voor het gemak de kleding - en maattabel namen gegeven
 
Laatst bewerkt:
Hoi Sylvester,
Dank je wel!
Zo te zien zal dit echt wel werken, echter heb ik geen enkele ervaring met VBA. Ik weet niet waar dit staat namelijk.
Ik probeer de cellen C24:D34 naar beneden te kopieeren maar dit lukt dus niet. (in CSV-Updater met VBA)
De waarden in kolom D geven dan de foutmelding #NAAM?

Het zou fantastisch zijn als je mij verder kunt helpen.

Grt,
 
als je het bestand opent moet je bewerken inschakelen dat moet altijd
ook inhoud inschakelen om de macro's toe te staan
 
je hebt geen ervaring met VBA

als je op Alt F11 drukt , kom je in de VBA editor.

in module1 staat de function.

zou je op de tweede regel een regel willen toevoegen met
Code:
Application.Volatile
dan gaat de berberekening van de formule beter

het komt er dan zo uit te zie":
Code:
Function GeefMaten(KledingStuk As Range, KledingTabel As Range, MaatTabel As Range)
    Application.Volatile
    Dim Opl(), Teller As Long, Aantal As Long, RijVerschil As Long, PlekVanFunctie As Range
    Set PlekVanFunctie = KledingStuk
    Do Until KledingStuk <> "" Or KledingStuk.Row = 1
        Set KledingStuk = KledingStuk(0, 1)
    Loop
    RijVerschil = PlekVanFunctie.Row - KledingStuk.Row
    For Teller = 1 To KledingTabel.Rows.Count
        If KledingTabel(Teller, 1) = KledingStuk Then
            Aantal = Aantal + 1
            ReDim Preserve Opl(Aantal)
            Opl(Aantal - 1) = MaatTabel(Teller, 1)
            If Aantal - 1 = RijVerschil Then Exit For
        End If
    Next Teller
    If RijVerschil <= Aantal - 1 Then
        GeefMaten = Opl(RijVerschil)
    Else
        GeefMaten = "-"
    End If
End Function

groet sylvester
 
Ok, Zover alles duidelijk wat te doen, en ook gedaan.
Helaas nog steeds dezelfde foutmelding!
Ben ik misschien iets vergeten?
Kan ik deze code ook plaatsen in het bestand waar ik straks daadwerkelijk mee moet werken?
 
Hallo,
Ondertussen even een vraag m.b.t. onderstaande formule:
Code:
=ALS(AANTAL.ALS(Data!$C$2:$C$5000;$B$[COLOR="#FF0000"]651[/COLOR])<RIJ()[COLOR="#FF0000"]-655[/COLOR];"";INDEX(Data!$N$2:$N$5000;KLEINSTE(ALS(Data!$C$2:$C$5000=$B$[COLOR="#FF0000"]651[/COLOR];RIJ(Data!$N$2:$N$5000)-1;"");RIJ()[COLOR="#FF0000"]-655[/COLOR])))
Wat kan ik aan deze formule veranderen zodat er bij kopieren de Rood gekleurde tekens automatisch mee veranderen zodat ik deze niet meer handmatig hoef aan te passen?

(ik weet niet of bovenstaande duidelijk weergegeven wordt)

Grt,
 
Edko, zou je dit bestand willen testen Bekijk bijlage teestFormuleSlepen(1.xlsm

als je de formule in de gele cellen naar beneden sleept krijg je dan ook weer een fout melding?

de formule zou de kwadraten van de naastliggende cel moeten geven.

ik wil graag weten of er een fout melding komt. dan kan ik misschien achterhalen waarom mijn function "geefMaten"bij jou niet werkt

groet sylvester
 
je bevijliging schakelt automaties alle macro's uit
dat moet je veranderen in uitschakelen met vraag
de macro's kun je dan aan zetten zodra je het bestand opstart
 
Gelukt!
Werkt nu wel!
Kan ik de code in VBA nu in mijn uiteindelijke excelbestand gebruiken?
of moet hier dan iets in aangepast worden?

Grt,
 
Hoi Sylvester,
Ik heb nu het VBA script toegevoegd in het xls bestand waarmee ik werk en heb ook de bereiken benoemd in de betreffende tabbladen (MaatTabel en Omschrijving)
Formule heb ik toegepast en nu wordt er als resultaat geen maten weergegeven, echter wel de - tekens.
Na het kopieren naar beneden worden er wel maten weergegeven die niet overeenkomen.

Waar zit de fout?

Grt,
 
Hoi Sylvester,
Bestand is ruim 15Mb groot, en daar waar het zijn werk moet doen is niet anders dan het bestand wat jij hebt geupload.
Moet ik misschien nog iets aanpassen in BVA editor?

Grt,
 
de formule kijkt naar het aantal rijen dat er zit tussen de kleding en de formuleplaats
als er 0 rijen verschil is krijg je de eerste maat (dus de kleinste maaat staat altijd op de zelfde rij als het kledingstuk)
als er 1 rijen verschil is krijg je de tweede maat
enz
als er meer rijen verschil is dan er maaten zijn krijg je een streepje

hoe de function op dat verschil reageert kan best veranderd worden

ik ben benieuwd wat er in jouw voorbeeld anders is dan in de werkelijkhijd

groet sylvester

ps als het bestand erg groot is is het misschien handig om de functi iets te optimaliseren (ivm snelhijd)
 
Laatst bewerkt:
Edko, je kan ook een plaatje (jpg) sturen om te laten zien wat er gebeurt
dan heb ik een idee hoe het er uit ziet ( moet gaan zien)
groet sylvester
 
Hoi Sylvester,
Resultaat VBA1.png
Je ziet in Kolom C dat er maten worden weergegeven die niet kloppen en ook zelfs 0 waarden.
Ik kolom B wordt Tekst samengevoegd van Kledingstuk en bijbehorende maat.

Geen idee wat te doen.

Grt,
 
Ik heb even in de kolommen met verwijzing 'Omschrijving' gekeken en denk dat de zoekfunctie niet naar volledige (indentieke) celinhoud kijkt.
Het woord Politie komt in meerdere cellen voor, en ook Boxershort in nog veel meer cellen.
 
hallo Edco

ik neem aan dat de formule "geefmaten" alleen in kolom c staat.
wat in kolom b gebeurt heeft daar geen invloed op.
maar als in kolom b een formule staat die de maat uit kolom c er achter zet dan gebeuren er hele rare dingen.

ik ben wel benieuwd naar wat de formule in kolom b is

in jouw vorige voorbeeld had je onder ieder kledingstuk meerdere lege regels om ruimte voor meerdere maten te houden
dat zie ik hier niet terug. en daar werkt de formule wel mee.
de formule zet de eerste maat naast het kledingstuk en alleen als onder het kledingstuk lege velden zijn ook er onder.

soms staan er meerdere keren de zelfde namen onder elkaar in kolom b, waarom is dat?
de formule kan ook zo gemaakt worden dat hij ook naar dubbele opeenvolgende namen kijkt.

is het niet mogelijk om van jouw bestand een kopie te maken den daarvan alles te wissen op 20 regels na en dan op te sturen?

ik denk dat het excel_voorbeeld dat je eerder stuurde op essentiële punten verschilt met de "werkelijkheid"

groet sylvester

ps wat moet ik me voorstellen bij een Boxershort - netstof - ? :)
 
Laatst bewerkt:
misschien is het eenvoudiger om alle maten in 1 cel te zetten.

dan krijg je bv zoiets als antwoord
bij Jurk groen: Xtra Small / Small / Medium / Large ( wel alle maten in 1 vakje )
bij Kousen Wit: 42-44 / 44-46 / 46-48 / 48-50 ( wel alle maten in 1 vakje )

groet
 
Bekijk bijlage Helpmij_totaal.xlsmHoi Sylvester,
Om de maten achter elkaar te zetten is mooi bedacht, echter geen optie omdat ik afzonderlijke artikelen moet creëeren.
In het uiteindelijke bestand waar ik mee ga werken staat de formule in kolom C 5 cellen naar beneden.
Dit is misschien wat je bedoelt.
Heb een kopie gemaakt en heel veel gewist wat niet van belang is.

Grt,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan