Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA vlookup funktioniert nicht, als Formel schon

VBA vlookup funktioniert nicht, als Formel schon
15.07.2016 16:50:55
flw201
Hallo zusammen,
mit Hilfe von UweD habe ich mir eine Lösung zusammengebaut. Allerdings habe ich das Problem, dass VLOOKUP nicht wie gewünscht funktioniert (einfach nicht bei ELSE weitermacht, obwohl es mit vlookup als normale Formel funktionier) und die Vergleichswerte in einer anderen Tabelle nicht findet:
Die Zellen sind in beiden Tabellen als "General" formatiert.
Sub TestFinal()
ActiveWorkbook.Activate
Sheets("SHEET1").Select
With Sheets("SHEET1")
Dim i&, LR&
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
Range("B1") = InputBox("Bitte tätigen Sie eine Eingabe", "Feld1", Range("B1"))
Range("B5") = InputBox("Bitte tätigen Sie eine Eingabe", "Feld2", Range("B5"))
Range("B2") = "31.12.2016"
For i = 8 To LR
If .Cells(i, 1)  "" And .Cells(i, 5)  "-" And .Cells(i, 5)  "" Then
.Cells(i, 9) = IIf(.Cells(i, 3)  0, "Nein", "")
.Cells(i, 10) = IIf(.Cells(i, 3)  0, "Nein", "")
.Cells(i, 11) = IIf(.Cells(i, 3)  0, "Nein", "")
.Cells(i, 12) = IIf(Abs(.Cells(i, 3)) >= .Cells(5, 2), "Ja", "Nein")
On Error Resume Next
If .Cells(i, 12) = "Nein" Then
.Cells(i, 14) = "Nein"
Else
If IsError(WorksheetFunction.VLookup(Cells(i, 1).Value, Workbooks(" _
COMPARE.xlsx").Worksheets("Sheet1").Range("A2:C50"), 3, False)) Then
.Cells(i, 13).Value = .Cells(i, 1).Value
Else
.Cells(i, 13) = WorksheetFunction.VLookup(Cells(i, 1).Value,  _
Workbooks("COMPARE.xlsx").Worksheets("Sheet1").Range("A2:C50"), 3, False)
.Cells(i, 2) = WorksheetFunction.VLookup(Cells(i, 1).Value,  _
Workbooks("COMPARE.xlsx").Worksheets("Sheet1").Range("A2:C50"), 2, False)
End If
End If
End If
Next
End With
With Sheets("SHEET2").Select
Range("H8:K19") = "Nein"
Range("K8") = "Ja"
Range("K15") = "Ja"
Range("K18") = "Ja"
Range("K19").Select
End With
Sheets("SHEET1").Select
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA vlookup funktioniert nicht, als Formel schon
15.07.2016 17:24:24
flw201
Kurz zur Ergänzung: Folgendes funktioniert auch nicht, selbst wenn ich händisch nochmal zum Test Texteinträge eingebe. Nur die Excelformel funktioniert, die VBA nicht.

CLng(Cells(i, 1).Value)

AW: VBA vlookup funktioniert nicht, als Formel schon
15.07.2016 18:28:03
Michael
Hi,
ohne Beispieldatei ist natürlich schlecht nachvollziehbar, was da passiert.
Ich habe den Code ein bißchen überarbeitet und beschleunigt:
Sub TestFinalOpti()
Dim erg As Variant   ' neu ******
Dim i&, LR&
Dim suchen, finden
'ist die Datei geöffnet?
'suchen = Workbooks("COMPARE.xlsx").Worksheets("Sheet1").Range("A2:A50")
'finden = Workbooks("COMPARE.xlsx").Worksheets("Sheet1").Range("AB:C50")
'Mal mit Testwerten...
suchen = Worksheets("Sheet2").Range("A2:A50")
finden = Worksheets("Sheet2").Range("B2:C50")
' die aktive Datei aktivieren: wozu?
With Sheets("SHEET1")
LR = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
.Range("B1") = InputBox("Bitte tätigen Sie eine Eingabe", "Feld1", Range("B1"))
.Range("B5") = InputBox("Bitte tätigen Sie eine Eingabe", "Feld2", Range("B5"))
.Range("B2") = "31.12.2016"
For i = 8 To LR
If .Cells(i, 1)  "" And .Cells(i, 5)  "-" And .Cells(i, 5)  "" Then
erg = IIf(.Cells(i, 3)  0, "Nein", "")
.Cells(i, 9).Resize(, 3) = erg  ' wozu DREIMAL rechnen?
'        .Cells(i, 10) = erg            ' und DREIMAL schreiben?
'        .Cells(i, 11) = erg
.Cells(i, 12) = IIf(Abs(.Cells(i, 3)) >= .Cells(5, 2), "Ja", "Nein")
'         On Error Resume Next
' Wenn schon ausschalten, dann bitte Fehler abfragen und wieder einschalten.... *******
If .Cells(i, 12) = "Nein" Then
.Cells(i, 14) = "Nein"
Else
erg = Application.Match(.Cells(i, 1).Value, suchen, 0)
If IsError(erg) Then
.Cells(i, 13).Value = .Cells(i, 1).Value
Else
.Cells(i, 13) = finden(erg, 2)
.Cells(i, 2) = finden(erg, 1)
End If
End If
End If
Next
End With
With Sheets("SHEET2").Select
Range("H8:K19") = "Nein"
Range("K8") = "Ja"
Range("K15") = "Ja"
Range("K18") = "Ja"
Range("K19").Select
End With
Sheets("SHEET1").Select
End Sub
Schöne Grüße,
Michael
Anzeige
AW: VBA vlookup funktioniert nicht, als Formel schon
18.07.2016 16:48:05
flw201
Danke sehr, Michael. Mit deiner Optimierung konnte ich meine Lösung fertigstellen.
gern geschehen,
18.07.2016 16:57:23
Michael
Hi,
ich seh grad, daß mein Code durchaus auch noch verbesserungswürdig ist...
Aber sei's drum: es freut mich, wenn Du ihn als Anregung verstanden hast und erfolgreich umsetzen konntest: was will man mehr?
Happy Exceling,
Michael
AW: VBA vlookup funktioniert nicht, als Formel schon
18.07.2016 16:48:11
flw201
Danke sehr, Michael. Mit deiner Optimierung konnte ich meine Lösung fertigstellen.

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige