Hallo Zusammen
Ich habe auf folgender Website einen Code für die Sverweis-Funktion in VBA gefunden:
Sverweis Funktion und Makro Alternative (makro-excel.de)
Den Code habe ich verstanden und konnte diesen für meine Zwecke entsprechend anpassen und nutzen.
Nun habe ich jedoch in meiner Tabelle zwei verschiedene Datenbasen die ich bisher mit zwei verschieden angepassten Makros Nutze:
Frage zu den beiden Codes?
Lassen die beiden sich in einem Makro vereinigen und wenn ja wie Steuere ich die Datenbasen an?
Ich bekomme das einfach nicht gebacken...
Vielen Dank für Eure Hilfe!
Rolf
Makro 1 mit diesem Code:
Sub SverweisEins()
'Dimensionieren der Parameter
Dim i As Long, letzteZeile As Long
Dim Arbeitsmappe As Workbook
Dim Datenbasis As Worksheet, Ziel As Worksheet
Dim Bereich As Range
Dim WsF As WorksheetFunction
Set Arbeitsmappe = ThisWorkbook
Set Datenbasis = Arbeitsmappe.Worksheets("Tabelle2") 'Tabellen definieren
Set Ziel = Arbeitsmappe.Worksheets("Grundliste") 'Tabellen definieren
letzteZeile = Datenbasis.Range("A" & Rows.Count).End(xlUp).Row 'Datenbasis als ganze Matrix
Set Bereich = Datenbasis.Range("A1:E" & letzteZeile) ' Matrix
Set WsF = Application.WorksheetFunction
For i = 4 To Ziel.Range("D" & Rows.Count).End(xlUp).Row ' D = Suchkriterium
On Error Resume Next
Ziel.Range("K" & i).Value = WsF.VLookup(Ziel.Range("D" & i).Value, Bereich, 3, False) ' K = Ziel
Next i
End Sub
Makro 2 mit diesem Code:
Option Explicit
Sub SverweisZwei()
Dim i As Long, letzteZeile As Long
Dim Arbeitsmappe As Workbook
Dim Datenbasis As Worksheet, Ziel As Worksheet
Dim Bereich As Range
Dim WsF As WorksheetFunction
Set Arbeitsmappe = ThisWorkbook
Set Datenbasis = Arbeitsmappe.Worksheets("Tabelle 3")
Set Ziel = Arbeitsmappe.Worksheets("Genehmigerliste")
letzteZeile = Datenbasis.Range("A" & Rows.Count).End(xlUp).Row
Set Bereich = Datenbasis.Range("A1:E" & letzteZeile)
Set WsF = Application.WorksheetFunction
For i = 4 To Ziel.Range("D" & Rows.Count).End(xlUp).Row
On Error Resume Next
Ziel.Range("L" & i).Value = WsF.VLookup(Ziel.Range("D" & i).Value, Bereich, 3, False)
Next i
End Sub
|