VBA: verticaal zoeken dan met macro's

Status
Niet open voor verdere reacties.

Raiden1

Gebruiker
Lid geworden
28 mrt 2019
Berichten
27
Goedendag allemaal,


Op dit moment zit ik met een dilemma m.b.t. 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 (test3.xlsm), maar als volgt,



Kolom A uit bestand 1 (test2), 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 1 (test2) vindt.

Hoop dat jullie mij echt kunnen helpen.

Alvast dank voor jullie medewerking

Groetjes
Raiden
 

Bijlagen

  • test 2.xlsm
    18 KB · Weergaven: 33
  • test 3.xlsm
    16 KB · Weergaven: 30
Beide bestanden in dezelfde map plaatsen.
Code:
Sub hsv()
Dim sv, sv2, m, i As Long, j As Long, Wb As Worksheet
Set Wb = ThisWorkbook.Sheets("blad test 2")
  With GetObject(ThisWorkbook.Path & "\test 3.xlsx")
   sv = Wb.Cells(1).CurrentRegion
   sv2 = .Sheets("blad1").Cells(1).CurrentRegion
     For i = 2 To UBound(sv)
      m = Application.Match(sv(i, 1), Application.Index(sv2, 0, 1), 0)
        If IsNumeric(m) Then
          For j = 2 To UBound(sv2, 2)
            sv(i, 23 + j - 2) = sv2(m, j)  'of sv(i,21+j) = sv2(m,j)
          Next j
        End If
    Next i
    Wb.Cells(1).Resize(UBound(sv), UBound(sv, 2)) = sv
   .Close
  End With
End Sub
 
Laatst bewerkt:
Beide bestanden in dezelfde map plaatsen.
Code:
Sub hsv()
Dim sv, sv2, m, i As Long, j As Long, Wb As Worksheet
Set Wb = ThisWorkbook.Sheets("blad test 2")
  With GetObject(ThisWorkbook.Path & "\test 3.xlsx")
   sv = Wb.Cells(1).CurrentRegion
   sv2 = .Sheets("blad1").Cells(1).CurrentRegion
     For i = 2 To UBound(sv)
      m = Application.Match(sv(i, 1), Application.Index(sv2, 0, 1), 0)
        If IsNumeric(m) Then
          For j = 2 To UBound(sv2, 2)
            sv(i, 23 + j - 2) = sv2(m, j)  'of sv(i,21+j) = sv2(m,j)
          Next j
        End If
    Next i
    Wb.Cells(1).Resize(UBound(sv), UBound(sv, 2)) = sv
   .Close
  End With
End Sub


Hi Harry,

Super dank je wel voor je hulp als enige.
het werkt gewoon geweldig.

Groetjes,
Raiden
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan