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

VBA verticaal zoeken met veel kolomen

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik zit met een nogal groot probleem, voor mij dan.
Ben met een conversie bezig en gaat al aardig opschieten, en zeker met al de hulp die ik tot nu toe al heb gekregen.

Ik ben nu bezig met een artikelsheet, waar ik veel gegevens aan het vullen ben.
Daarbuiten draai ik nog een conversie uit het oude syteem, met een VBA script, die dan automatische een blad "ArtikelConversie Output"" aanmaakt waar ik de gegevens in wil hebben Nu wil ik graag de twee bladen met elkaar matchen.
Ik heb een uniek artikel nummer waar ik op kan vertikaal zoeken, maar als ik 23 kolomen op deze manier met vertikaal zoeken gaat doen dan duurt het eeuwig voordat het waarschijnlijk klaar is.

Ik hoop dat ik duidelijk genoeg ben geweest om het probleem uit te leggen.

ArtikelConversie Output1 = staan de gegevens die in ArtikelConversie Output wil hebben
In mijn voorbeeld, heb ik in groen de kolomen aangeveven die ik wel matchen met elkaar met vertikaal zoeken.

Hoe kan ik dit het beste aanpakken ?

Groet HWV
 

Bijlagen

Mooie formule

Code:
=VERT.ZOEKEN($A2;'ArtikelConversie Output1'!$A$1:$CX$10;KOLOM();0)

Beste ,

Bedankt voor de input op mijn vraag.
Een mooie formule, maar dit zou betekenen dat dit een handmatige actie moet gaan worden, na mijn VBA script die het blad "ArtikelConversie Output" heb aangemaakt met de gegevens uit ons oude systeem.In dezelfde flow zou ik deze actie mee willen nemen.

In iedergeval erg bedankt voor het meedenken.

Groet HWV
 
Helaas snap ik niet helemaal wat je bedoeld met matchen,

kun je dit misschien nog eventjes toelichten?

Welke kolom wil je met welke kolom vergelijken ?
 
verikaal zoeken

Beste,

Bedankt voor je reactie.
Ik zal het proberen uit te leggen, aan de hand van een voorbeeld.
In VBA heb ik een script, uit dit script wordt een sheet gemaakt genoemd ArtikelConversie Output met gegevens uit mijn oude systeem.

In een ander sheet ArtikelConversie Output1 in deze werkmap heb ik andere gegevens verzameld die ik niet uit mijn oude systeem heb kunnen halen of er niet in zaten.

Deze gegevens wil ik dus in de sheet ArtikelConversie Output hebben.
Het liefst heb ik dat dit gelijk gebeurd in de VBA script die ik al heb.

Ik dacht misschien is er ook een script voor vertikaal zoeken in VBA, ik ben hier al veel tegen gekomen maar niet één dat ik kan gebruiken.

Ik kan de kolomen niet één op één overnemen ivm dat de gegevens niet gelijk overeen komen.

Groet HWV
 
volgens mij si wat popipipo aanrijkt een goede optie en gemakkelijk te kopiëren voor alle velden, ik begrijp echter wat je bedoelt in het VBA script, helaas weet ik hier geen andere (VBA) oplossing voor.

Hopelijk kan iemand anders helpen, succes met de vraag.
 
Alweer perfect

Rudi, je heb weer perfet werk geleverd.
Ik heb een kleine aanpassing gedaan, om het voor mij te laten werken.
Code:
Sub zoeken()
    For Each c In Range("A2", Range("A65536").End(xlUp))
        For i = 21 To 40
            c.Offset(0, i).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
        Next i
                For i = 50 To 50
            c.Offset(0, i).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
        Next i
        
                For i = 52 To 52
            c.Offset(0, i).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
        Next i
    Next c
End Sub

Op deze manier pak hij enkel de cellen die ik nodig heb uit het andere blad, want anders zou hij mijn actueele data gaan overschrijven.
Nogmaals perfect.

PS PS,

Hoe kan ik voorkomen dat als er niks staat dat het veld leeg blijf, nu zet hij er 0 (nul) in



Groet HWV
 
Laatst bewerkt:
Hij kan ook iets korter

Code:
Sub zoeken()
    For Each c In Range("A2", Range("A65536").End(xlUp))
        For i = 21 To 40
            c.Offset(0, i).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
        Next i
            c.Offset(0, 50).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
            c.Offset(0, 52).Formula = "=IF(ISERROR(VLOOKUP(RC1,artikels,COLUMN(),0)),"""",VLOOKUP(RC1,artikels,COLUMN(),0))"
    Next c
End Sub

Extra >> Opties >> Weergave >> Vinkje weg bij Nulwaarden >> OK

Mvg

Rudi
 
Laatst bewerkt:
Korter

Rudi,

Bedankt voor je reactie en je nieuwe input.
Toch wel leuk dat het elke keer weer korter kan, leer er een hoop van.
Extra >> Opties >> Weergave >> Vinkje weg bij Nulwaarden >> OK
Die optie was mij bekend, maar omdat dit wordt ingelezen in ons nieuwe systeem is het toch wel van belang dat er geen nullen staan.


Groet HWV
 
Code:
Sub zoeken()
  for j=2 to sheets(1).cells(rows.count,1).End(xlUp).row
    with sheets(2).columns(1).find(sheets(1).cells(j,1).value)
      .offset(,20).resize(,19).copy sheets(1).cells(j,2)
      .offset(,50).copy sheets(1).cells(j,50)
      .offset(,52).copy sheets(1).cells(j,52)
    end with
  next
End Sub

PS. pas de sheets-aanduiding aan.
Zoveel formules in een werkblad (suggestie van Rudi) maakt de berekening van het werkblad niet veel sneller.
 
Een fout melding

Beste,

Bedankt voor de reactie.

Ik heb hier een tweetal vragen over die mischien met elkaar in verband staan.

PS. pas de sheets-aanduiding aan.
Zoveel formules in een werkblad (suggestie van Rudi) maakt de berekening van het werkblad niet veel sneller

U bedoel de bladen hernoemen naar blad1 en blad 2 ?

en ik krijg de volgende melding tijdens uitvoeren van het script.

Fout 91 tijdens uitvoering
Objectvariable of blkokvariable with is niet ingesteld

Groet HWV
 
Bedankt

Beste Rudi, SNB

Bedankt voor de bijdrage.
Het werkt als een trein. Op ruim 9000 regels er maar rond de 2 minuten over doen, petje af.
Het is een formule die ik erg vaak kan gebruiken dus ik ben er erg content mee.

Groet Henk
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan