Option
Explicit
Sub
SVERWEIS_Vlookup()
Dim
i
As
Long
, letzteZeileAuftrag
As
Long
, letzteZeileMeldung
As
Long
Dim
Arbeitsmappe
As
Workbook
Dim
DatenbasisAuftrag
As
Worksheet
Dim
DatenbasisMeldung
As
Worksheet
Dim
Ziel
As
Worksheet
Dim
BereichAuftrag
As
Range
Dim
BereichMeldung
As
Range
Dim
ZelleFirma
As
Range
Dim
WsF
As
WorksheetFunction
Set
Arbeitsmappe = ThisWorkbook
Set
DatenbasisAuftrag = Arbeitsmappe.Worksheets(
"Auftrag"
)
Set
DatenbasisMeldung = Arbeitsmappe.Worksheets(
"Meldung"
)
Set
Ziel = Arbeitsmappe.Worksheets(
"Ergebnis"
)
letzteZeileAuftrag = DatenbasisAuftrag.Range(
"A1048576"
).
End
(xlUp).Row
letzteZeileMeldung = DatenbasisMeldung.Range(
"A1048576"
).
End
(xlUp).Row
Set
BereichAuftrag = DatenbasisAuftrag.Range(
"A1:D"
& letzteZeileAuftrag)
Set
BereichMeldung = DatenbasisMeldung.Range(
"A1:L"
& letzteZeileMeldung)
Set
WsF = Application.WorksheetFunction
Arbeitsmappe.Worksheets(
"Meldung"
).Columns(
"A:A"
).TextToColumns Destination:=Range(
"A1"
), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=
False
, Tab:=
True
, _
Semicolon:=
False
, Comma:=
False
, Space:=
False
, Other:=
False
, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=
True
Arbeitsmappe.Worksheets(
"Meldung"
).Columns(
"B:B"
).TextToColumns Destination:=Range(
"B1"
), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=
False
, Tab:=
True
, _
Semicolon:=
False
, Comma:=
False
, Space:=
False
, Other:=
False
, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=
True
<strong> Sheets(
"Meldung"
).Range(
"a1:n2500"
).Copy</strong>
Sheets(
"Ergebnis"
).Range(
"a1"
).PasteSpecial Paste:=xlValues
Columns(
"B:C"
).Insert Shift:=xlToRight
Columns(
"E:F"
).Insert Shift:=xlToRight
Columns(
"O:P"
).Delete
Range(
"b1"
) =
"Gew.Beginn"
Range(
"C1"
) =
"Gew.Ende"
Range(
"E1"
) =
"Eckstarttermin"
Range(
"F1"
) =
"Eckendtermin"
For
i = 2
To
Ziel.Range(
"A1048576"
).
End
(xlUp).Row
Ziel.Range(
"E"
& i).Value = WsF.VLookup(Ziel.Range(
"D"
& i).Value, BereichAuftrag, 3,
False
)
Ziel.Range(
"F"
& i).Value = WsF.VLookup(Ziel.Range(
"D"
& i).Value, BereichAuftrag, 4,
False
)
<strong>Ziel.Range(
"B"
& i).Value = WsF.VLookup(Ziel.Range(
"D"
& i).Value, BereichsMeldung, 11,
False
)</strong>
On
Error
Resume
Next
Next
i
Range(
"a2:a2500"
).NumberFormat =
"General"
Range(
"d2:D2500"
).NumberFormat =
"General"
Range(
"B2:C2500"
).NumberFormat =
"dd.mm.yyyy"
Range(
"E2:F2500"
).NumberFormat =
"dd.mm.yyyy"
End
Sub