Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: per Vlookup Daten aus externer Datei übertragen

per Vlookup Daten aus externer Datei übertragen
28.01.2019 14:59:56
Cevren
Hi, Ich würde gerne einzelne Daten verschiedener Datein mit wechselnder Struktur per Vlookup auslesen und übertragen. Mein Ansatz hat schon für eine andere, jedoch statische Funktion, sehr gut funktioniert aber mit der Dynamik von Vlookup komm ich nicht weiter.
Hier was ich hab:
Public Function RC1DateiEinlesen() As String
Dim oFileDialog As FileDialog
Dim SourceRange As Range
Dim DestinationRange As Range
Dim RC1Dateiname As String
Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With oFileDialog
.Title = "Datei Einlesen"
.Filters.Add "XML-Dateien", "*.xml", 1
.ButtonName = "Einlesen"
If .Show = -1 Then RC1DateiEinl = .SelectedItems(1)
If RC1DateiEinl  "" Then
Workbooks.Open RC1DateiEinl
RC1Dateiname = ActiveWorkbook.Name
getMoreSpeed True
'läuft durch aber findet keine Werte (#Name)... Habe hier den Namen der Datei zur  _
Funktionskontrolle eingegeben wie das mit einer Variable zu lösen ist habe ich noch keine  _
Ahnung :D
'With Range("D5")
'.Formula = "=VLookup(" & Range("AB4") & "," & "'[AG 8-22 1-19.xml] _
Tabellen_Ausgabe'!$A$1:$W$15, 4, False)"
'.Formula = .Value
'End With
'läuft nicht durch... bekomme ständig entwerder "außerhalb Index"-Fehler oder "Objekt  _
erforderlich"
'Set SourceRange = Application.WorksheetFunction.VLookup(Range("AB4").  _
_
Value, Workbooks(RC1Dateiname).Worksheets("Tabellen_Ausgabe").Range("A1:P99").Value, 4, False)
'Set DestinationRange = ThisWorkbook.Sheets("Resultierend").Range("D5")
'DestinationRange.Value = SourceRange.Value
Workbooks(RC1Dateiname).Close savechanges:=False
getMoreSpeed False
End If
End With
End Function
Jemand eine Idee?
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Vlookup Daten aus externer Datei übertragen
31.01.2019 14:22:44
Cevren
Nicht elegant aber eine Lösung:
Public Function RC1DateiEinlesen() As String
Dim oFileDialog As FileDialog
Dim DestinationRange As Range
Dim RC1Dateiname As String
Dim myLookupValue As String
Dim myFirstColumn As Long
Dim myLastColumn As Long
Dim myColumnIndex As Long
Dim myFirstRow As Long
Dim myLastRow As Long
Dim myVLookupResult As Currency
Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
Set DestinationRange = Range("D5")
Dim myTableArray As Range
myLookupValue = "im Mittel"
myFirstColumn = 1
myLastColumn = 26
myColumnIndex = 4
myFirstRow = 1
myLastRow = 90
With oFileDialog
.Title = "Datei Einlesen"
.Filters.Add "XML-Dateien", "*.xml", 1
.ButtonName = "Einlesen"
If .Show = -1 Then RC1DateiEinl = .SelectedItems(1)
If RC1DateiEinl  "" Then
Workbooks.Open RC1DateiEinl
RC1Dateiname = ActiveWorkbook.Name
getMoreSpeed True
With Workbooks(RC1Dateiname).Worksheets("Tabellen_Ausgabe")
Set myTableArray = .Range(.Cells(myFirstRow, myFirstColumn), .Cells(myLastRow,  _
myLastColumn))
End With
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray, myColumnIndex,  _
False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("E5")
myColumnIndex = 5
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("F5")
myColumnIndex = 6
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("G5")
myColumnIndex = 7
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("h5")
myColumnIndex = 8
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("i5")
myColumnIndex = 9
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("K5")
myColumnIndex = 10
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("L5")
myColumnIndex = 11
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("M5")
myColumnIndex = 12
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("n5")
myColumnIndex = 13
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("o5")
myColumnIndex = 14
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("p5")
myColumnIndex = 15
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("q5")
myColumnIndex = 16
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Set DestinationRange = Range("r5")
'myColumnIndex = 17
'myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
myVLookupResult = 100 'Lastrada nimmt kein Durchgang 56mm
DestinationRange = myVLookupResult
Set DestinationRange = Range("w5")
myColumnIndex = 25
myVLookupResult = WorksheetFunction.VLookup(myLookupValue, myTableArray,  _
myColumnIndex, False)
DestinationRange = myVLookupResult
Workbooks(RC1Dateiname).Close savechanges:=False
getMoreSpeed False
End If
End With
End Function

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige