Bekomme VLOOKUP nicht zum Laufen

Hallo,

ich hab jetzt auchnoch ein 2. Problem, an einer anderen Stelle.

Kann mir jemand sagen, warum der Code nicht geht?

also der 1. Teil, ist nur zum Verständnis:

Private Sub CommandButton1\_Click()

'\*\*\*\*\* 1. Formular auswählen / öffnen \*\*\*\*\*

 Dim varFName As Variant

 ' Aktuelles WB als Workbook1 sichern
 Workbook1 = ActiveWorkbook.Windows(1).Caption
 ' Fenster öffnen, um Formularblatt auszuwählen
 varFName = Application.GetOpenFilename(fileFilter:="Excel-Dateien (\*.xls), \*.xls")
 ' Wurde eine Datei geöffnet? Nein. -\> Abbruch:
 If varFName = False Then Exit Sub
 ' Datei ist schon geöffnet. Erneut öffnen? Nein. -\> Abbruch:
 'On Error GoTo Ende
 ' Datei (Formularblatt) öffnen
 Workbooks.Open Filename:=varFName
 ' neuen Dateiname (für Formular) laden
 Newworkbook = ActiveWorkbook.Windows(1).Caption


'\*\*\*\*\* 2. Daten aus Formular in Workbook1 eintragen \*\*\*\*\*

 'Tabellenblatt mit Statistik aktivieren
 Windows(Workbook1).Activate
 Tabelle1.Activate
 'leere Zelle am Ende der Spalte B Tabelle suchen
 lastrow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1

Hier kommt das eigentliche Problem. Der 1. Teil läuft…

Dim rngA, rngB As Range

 Set rngA = Workbook1.Cells(1, ActiveCell.Column)
 Set rngB = Windows(Newworkbook).Tabelle1.Range("A:B")

 Workbooks(Workbook1).Tabelle1.Cells(lastrow, 2).Value = \_
 WorksheetFunction.VLookup(rngA, rngB, 2, False)

Ende:
End Sub

Da kommen immer Laufzeitfehler…
Weiß da jemand einen Rat?

Dim rngA, rngB As Range
Set rngA = Workbook1.Cells(1, ActiveCell.Column)
Set rngB = Windows(Newworkbook).Tabelle1.Range(„A:B“)
Workbooks(Workbook1).Tabelle1.Cells(lastrow, 2).Value = _
WorksheetFunction.VLookup(rngA, rngB, 2, False)
Da kommen immer Laufzeitfehler…

Hi Uschi,

probier’s mal so:

Option Explicit
'
Private Sub CommandButton1\_Click()
'\*\*\*\*\* 1. Formular auswählen / öffnen \*\*\*\*\*
Dim varFName As Variant, varA As Variant, rngB As Range, LastRow As Long
Dim Workbook1 As Workbook, Newworkbook As Workbook
' Aktuelles WB als Workbook1 sichern
Set Workbook1 = ActiveWorkbook
' Fenster öffnen, um Formularblatt auszuwählen
varFName = Application.GetOpenFilename(fileFilter:="Excel-Dateien (\*.xls), \*.xls")
' Wurde eine Datei geöffnet? Nein. -\> Abbruch:
If varFName = False Then Exit Sub
' Datei ist schon geöffnet. Erneut öffnen? Nein. -\> Abbruch:
'On Error GoTo Ende
' Datei (Formularblatt) öffnen
Workbooks.Open Filename:=varFName
' neuen Dateiname (für Formular) laden
Set Newworkbook = ActiveWorkbook
'\*\*\*\*\* 2. Daten aus Formular in Workbook1 eintragen \*\*\*\*\*
'Tabellenblatt mit Statistik aktivieren
With Workbook1.Worksheets("Tabelle1")
 'leere Zelle am Ende der Spalte B Tabelle suchen
 LastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
 'Hier kommt das eigentliche Problem. Der 1. Teil läuft..
 varA = .Cells(1, ActiveCell.Column)
 Set rngB = Newworkbook.Worksheets("Tabelle1").Range("A:B")
 If Application.WorksheetFunction.CountIf(rngB, varA) \> 0 Then
 .Cells(LastRow, 2).Value = WorksheetFunction.VLookup(varA, rngB, 2, False)
 End If
End With
Ende:
End Sub

Gruß
Reinhard

Hey Reinhard,

warst mal wieder mein Retter :wink:
Danke, funktioniert.

Grüße Uschi