vlookup en kopieer row

Status
Niet open voor verdere reacties.

kareltje555

Gebruiker
Lid geworden
22 sep 2011
Berichten
75
geachte,
op basis van cel waarde in wb1 wil ik die waarde opzoeken in kolom a van wb2 sheet data en die regel kopieren naar een regel [ bv 50 ] in wb 1 sheet start.
met vlookup's in wb1 sheet start lukt het wel , echter heb ik het idee door een 10 tal vlookups in wb1 , dat daar het werkboek groter van woord , maw meer MB.

alvast grote dank
 
Als je formules toevoegt aan een werkboek wordt dat werkboek groter, daar is geen speld tussen te krijgen. Maar wat is nu je probleem?
 
Het ligt er ook nog aan hoe je die formules schrijft. Los van de formules zijn er nog wel wat zaken die een werkboek traag maken.
 
reactie op ahulpje ; mijn probleem is dat ik niet weet hoe ik in een macro een vlookup kan doen in ander werkboek en de gevonden cel , die regel met andere cellen die daar bij horen kan kopieren naar mijn 1e werkboek.

ractie op jec ; waar specifiek op te letten - traag en groot om te laden over netwerk ?
 
Een beginnetje, WB2.xlsx moet geopend zijn:
Code:
Sub ZoekInWB2()
    Set Rng = Workbooks("WB2.xlsx").Sheets("Blad1").Range("A:A").Find("zoekterm")
    If Not Rng Is Nothing Then
        MsgBox "Gevonden in rij: " & Rng.Row
    End If
End Sub
 
Code:
Sub vind_patient_en_copy_regel()
Dim zorgnr As String
Dim rng As Range
Dim wb1 As Workbook
Dim wb2 As Workbook
Workbooks("gza_tools.xlsm").Activate
Set wb1 = ActiveWorkbook
wb1.Sheets("start").Range("c74").Value = "GZA_PAT_DB.XLSX"
zorgnr = Sheets("start").Range("c80").Value                         ''    hier wordt wel n waarde gevonden
Set wb2 = Workbooks.Open(Sheets("start").Range("e74").Value)

Set rng = wb2.Sheets("data").Range("A:A").Find("zorgnr")     '' rng is hier dan weer nothing  , ik snap het niet. meer
    If Not rng Is Nothing Then
        MsgBox "Gevonden in rij: " & rng.Row
    End If
End Sub

mijn wens is de gevonden row te kopieren naar WB1
 
Als wb2 het document GZA_PAT_DB.XLSX betreft doe het dan eens zo:
Set rng = Workbooks("GZA_PAT_DB.XLSX").Sheets("data").Range("A:A").Find(zorgnr)
Staat het te zoeken zorgnr in kolom A?
En zorgnr is een variabele, dus geen "zorgnr" gebruiken, want dan zoek je naar de tekst "zorgnr".
 
Enkele bemerkingen.
1. Bij Workbook.Open wordt geen pad vermeld waar het te openen bestand staat.
2. In C74 zet je een bestandsnaam maar bij Workbook.Open verwijs je naar E74.
3. Zoals AHulpje al opmerkte is zorgnr een variabele dus géén aanhalingstekens errond.
Dit allemaal gezegd zijnde..
Code:
Sub vind_patient_en_copy_regel()
Dim zorgnr As String, _
    path As String, _
    rng As Range, _
    wb1 As Workbook, _
    wb2 As Workbook
    path = "D:\" 'Aan te passen
    
    Workbooks("gza_tools.xlsm").Activate
    zorgnr = Sheets("start").Range("C80").Value
    Set wb1 = ActiveWorkbook
    wb1.Sheets("start").Range("C74").Value = "GZA_PAT_DB.XLSX"
    Set wb2 = Workbooks.Open(path & Sheets("start").Range("C74").Value)
    Set rng = wb2.Sheets("data").Range("A:A").Find(zorgnr)     '' rng is hier dan weer nothing  , ik snap het niet. meer
    If Not rng Is Nothing Then
        MsgBox "Gevonden in rij: " & rng.Row
    End If
End Sub
 
Wat jij wil is filteren en kopiëren.
Stap af van het Excel formule denken. Excel heeft autofilter en advancedfilter.
Wat is doel van zo'n excercitie ? Kopiëren lijkt me volstrekt overbodig.
 
beste mensen , dank voor uwes wijsheden.
nu alweer laat , te laat om nog even te ervaren wat jullie reactie doet.
heb er alle vertrouwen in , maar kies voor mijn bedje , morgen weer vroeg op .
ik laat weten hoe het verloopt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan