Vba Verticaal Zoeken

Pagina: 1
Acties:
  • 2.501 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedendag allemaal,


op dit moment zit ik met een dilemma mbt verticaal zoeken met vba (Dus NIET met formule aub)

ik heb 2 bestanden geupload als voorbeeld.

Bestand 1 (test2.xlsm):
in dit bestand moeten de waarden overgenomen worden uit bestand 2 (test.xlsm), maar als volgt,

Bestand 1 (test2.xlsm):

Kolom A, hieronder vind je de ordernummers. deze ordernummers moet matchen met de ordernummers van bestand 2 (test3.xlsm), indien er een match is, dan moeten alle waarden van die rijen (vanaf kolom B en tot de laatste waar in de rij) overgenomen worden naar bestand 1 (test2.xlsm) maar dan vanaf kolom W in die specifieke rij.

het bovenstaande gebeurd met behulp van het knopje Update wat je in het bestand 2 vindt.

hoop dat jullie mij echt kunnen helpen.

Wie kan mij vertellen hoe ik de bestanden kan toevoegen?

alvast dank voor jullie medewerking

groetjes
nawien

Beste antwoord (via Verwijderd op 03-04-2019 10:23)


  • stuch
  • Registratie: September 2011
  • Laatst online: 29-11-2020
Ik vind je omschrijving niet erg duidelijk. Er ontbreken woorden. Alsnog, ik denk dat je 2 bestanden wil vergelijken op basis van een ordernummer en de gevonden matches wil plaatsen in een ander bestand.

Dit is een vrij eenvoudige exercitie. Onderstaande code kan je importeren in het bestand waar de waardes van de door jou genoemde rijen na het matchen van de 2 bestanden in moeten komen. Ik heb wat delen voor je leeg gelaten, die mag je zelf zoeken. Ik zou de microsoft site gebruiken om de verschillende stukjes code te vinden die je nodig hebt. bovendien kan je genoeg van zulke dingen vinden op google :) Als je tekst wat duidelijker maakt, weet ik ook wat je precies waar naar wil kopieren.

sub x()

dim i,j, lastrow as integer
dim wb1,wb2,wb3 as workbook

set wb1 = thisworkbook
set wb2 = dir("path naar bestand 2")
set wb3 = dir("path naar bestand 2")

lastrow = wb1.range("A1048754").end(xlup).row + 1

'indien x van wb2 matcht met y van wb3 -> kopier de waardes van kolom x, naar ergens in kolom w.?

for i = beginrij to wb2.range("A1048754").end(xlup).row
for j = beginrij2 to wb3.range("A1048754").end(xlup).row

if not wb2.range("A" & i).value = wb3.range("A" & j).value then
goto nextj
end if

if wb2.range("A" & i).value = wb3.range("A" & j).value then
wb2.range("B" & i & ":W" & wb2.range("A1048754").end(xlup).row).copy
wb1.range("W" & lastrow).value.pastevalues xlpastespecial
goto nexti
end if

nextj:

next j

nexti:
next i

if wb2.range("A" & i).

end sub

- just do it

Alle reacties


Acties:
  • +2 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Daar gaattie weer... :/
Ik lees van alles wat het excel-bestand moet kunnen, maar onderstaande zaken lees ik nergens terug:
• Wat heb je zelf al geprobeerd?
• Waar kom je precies niet uit?
• Wat heb je zelf al gevonden?

Je hebt trouwens geen bestanden geupload, dat kan hier helemaal niet. :7

Om je een beetje op weg te helpen: verticaal zoeken heet in het engels 'vlookup', een snelle google-search naar 'vba vlookup' levert als eerste resultaat Excel VBA VLookup: Step-by-Step Guide and 5 Code Examples to Use the VLookup Function in Macros

Ga daar eerst maar eens mee aan de slag :Y

Hoeder van het Noord-Meierijse dialect


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • stuch
  • Registratie: September 2011
  • Laatst online: 29-11-2020
Ik vind je omschrijving niet erg duidelijk. Er ontbreken woorden. Alsnog, ik denk dat je 2 bestanden wil vergelijken op basis van een ordernummer en de gevonden matches wil plaatsen in een ander bestand.

Dit is een vrij eenvoudige exercitie. Onderstaande code kan je importeren in het bestand waar de waardes van de door jou genoemde rijen na het matchen van de 2 bestanden in moeten komen. Ik heb wat delen voor je leeg gelaten, die mag je zelf zoeken. Ik zou de microsoft site gebruiken om de verschillende stukjes code te vinden die je nodig hebt. bovendien kan je genoeg van zulke dingen vinden op google :) Als je tekst wat duidelijker maakt, weet ik ook wat je precies waar naar wil kopieren.

sub x()

dim i,j, lastrow as integer
dim wb1,wb2,wb3 as workbook

set wb1 = thisworkbook
set wb2 = dir("path naar bestand 2")
set wb3 = dir("path naar bestand 2")

lastrow = wb1.range("A1048754").end(xlup).row + 1

'indien x van wb2 matcht met y van wb3 -> kopier de waardes van kolom x, naar ergens in kolom w.?

for i = beginrij to wb2.range("A1048754").end(xlup).row
for j = beginrij2 to wb3.range("A1048754").end(xlup).row

if not wb2.range("A" & i).value = wb3.range("A" & j).value then
goto nextj
end if

if wb2.range("A" & i).value = wb3.range("A" & j).value then
wb2.range("B" & i & ":W" & wb2.range("A1048754").end(xlup).row).copy
wb1.range("W" & lastrow).value.pastevalues xlpastespecial
goto nexti
end if

nextj:

next j

nexti:
next i

if wb2.range("A" & i).

end sub

- just do it


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

@stuch Ik ga hier weer bijna op een mod-stoel zitten maar wil toch even melden dat het in Programming expliciet niet de bedoeling is dat we (zeker bij zo'n brakke topicstart) complete lappe code gaan neerdumpen die de TS kan copy- pasten, daar schiet TS op de lange termijn helemaal niets mee op, zie we 'm (haar?) over een maand weer terug met het volgende probleem wat wij dan mogen oplossen. :/

Verder weet ik niet in hoeverre het relevant is om nog te reageren op zo'n hit 'n run-topic. TS dumpt hier een vraag op 6 december, krijgt dezelfde dag van mij een aantal vragen en pointers terug en vervolgens zien we TS nooit meer terug :? Ik denk dat het verspilde moeite is om meer dan een maand na dato nog even met wat code te op de proppen te komen.

En als laatste nog een verwijzing naar de FAQ met in het bijzonder de code-tag :)

Hoeder van het Noord-Meierijse dialect


Acties:
  • +1 Henk 'm!

  • stuch
  • Registratie: September 2011
  • Laatst online: 29-11-2020
@Harrie_ Hi Harrie, dank voor je uitleg m.b.t. de regels. Overigens is mijn stuk code nog niet helemaal af. Ik heb de topic starter een huiswerk klus gegeven om het e.e.a. compleet te krijgen. Als dat niet lukt, zal de TP inderdaad een kant en klaar antwoord willen en houdt het dus op.

Ik kan me aansluiten bij je standpunt wat betreft de TP en haar/zijn intenties met het topic.

Ik ben zelf niet heel actief op dit forum en was me niet bekend met de FAQ m.b.t. de code-tag. Ik zal de FAQ eens bekijken, dank daarvoor. Als ik zo nu en dan zelf wat vraag, probeer ik ook wat terug te doen voor de community. Ditmaal hiermee (ook al is het wat oud.. ; zag ik overigens later pas)

Groeten,
Ko-Lin

- just do it


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Harrie_ schreef op donderdag 6 december 2018 @ 15:01:
Daar gaattie weer... :/
Ik lees van alles wat het excel-bestand moet kunnen, maar onderstaande zaken lees ik nergens terug:
• Wat heb je zelf al geprobeerd?
• Waar kom je precies niet uit?
• Wat heb je zelf al gevonden?

Je hebt trouwens geen bestanden geupload, dat kan hier helemaal niet. :7

Om je een beetje op weg te helpen: verticaal zoeken heet in het engels 'vlookup', een snelle google-search naar 'vba vlookup' levert als eerste resultaat Excel VBA VLookup: Step-by-Step Guide and 5 Code Examples to Use the VLookup Function in Macros

Ga daar eerst maar eens mee aan de slag :Y
Beste Harrie,

Als je niks zinnigs te vertellen hebt, hou a.u.b. je commentaar voor je. als ik een expert was, had ik zeker hier niet gedropt met mijn vraag.

gr
Nawien

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
stuch schreef op dinsdag 15 januari 2019 @ 23:40:
Ik vind je omschrijving niet erg duidelijk. Er ontbreken woorden. Alsnog, ik denk dat je 2 bestanden wil vergelijken op basis van een ordernummer en de gevonden matches wil plaatsen in een ander bestand.

Dit is een vrij eenvoudige exercitie. Onderstaande code kan je importeren in het bestand waar de waardes van de door jou genoemde rijen na het matchen van de 2 bestanden in moeten komen. Ik heb wat delen voor je leeg gelaten, die mag je zelf zoeken. Ik zou de microsoft site gebruiken om de verschillende stukjes code te vinden die je nodig hebt. bovendien kan je genoeg van zulke dingen vinden op google :) Als je tekst wat duidelijker maakt, weet ik ook wat je precies waar naar wil kopieren.

sub x()

dim i,j, lastrow as integer
dim wb1,wb2,wb3 as workbook

set wb1 = thisworkbook
set wb2 = dir("path naar bestand 2")
set wb3 = dir("path naar bestand 2")

lastrow = wb1.range("A1048754").end(xlup).row + 1

'indien x van wb2 matcht met y van wb3 -> kopier de waardes van kolom x, naar ergens in kolom w.?

for i = beginrij to wb2.range("A1048754").end(xlup).row
for j = beginrij2 to wb3.range("A1048754").end(xlup).row

if not wb2.range("A" & i).value = wb3.range("A" & j).value then
goto nextj
end if

if wb2.range("A" & i).value = wb3.range("A" & j).value then
wb2.range("B" & i & ":W" & wb2.range("A1048754").end(xlup).row).copy
wb1.range("W" & lastrow).value.pastevalues xlpastespecial
goto nexti
end if

nextj:

next j

nexti:
next i

if wb2.range("A" & i).

end sub
Hi Stuch,

Super dank dat je mij probeert te helpen.
Ter info, ik heb zelf geprobeerd, ik weet niet waar ik moet beginnen en hoe..

Dus nogmaals bedankt...en ik ga kijken hoe ik dit verder kan uitwerken.

PS. Laat je niet door die ene " harrie ", want als jij mij wilt helpen dan is het aan jou en niet aan hem!

gr
Nawien

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Nu online

MueR

Admin Tweakers Discord

is niet lief

Verwijderd schreef op woensdag 3 april 2019 @ 10:27:
[...]


Beste Harrie,

Als je niks zinnigs te vertellen hebt, hou a.u.b. je commentaar voor je. als ik een expert was, had ik zeker hier niet gedropt met mijn vraag.

gr
Nawien
En wil jij dit soort reacties ook voor je houden? Als je problemen hebt met de manier waarop een gebruiker reageert maak je maar een topicreport, dan handelen wij moderators het wel af.

Probeer een eventuele vervolgvraag maar in een nieuw topic, de kans dat dit topic ontspoort is wat te groot.

[ Voor 10% gewijzigd door MueR op 03-04-2019 10:42 ]

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.