Anzeige
Archiv - Navigation
1348to1352
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 Index,Vergleich

VBA Index,Vergleich
20.02.2014 10:38:24
Thorsten
Hallo fleißige Helfer,
ich beschäftige mich das erste Mal mit VBA-Formel und bekomme es natürlich nicht hin.
Und zwar wollte ich diese Formel umsetzen:
=WENNFEHLER(INDEX(Import!K1:K5000;VERGLEICH(OVD!AA1;Import!A1:A5000;0));"Keine Angabe")
Das Ergebnis soll dann nur in einer Msgbox angezeigt werden.
Sub Test ()
Dim a As Range  ' Bereich
Dim b As Range  ' Suchbereich
Dim y As Range  ' Suchkriterium
Dim x As Variant
Set a = Sheets("Import").Range("K1 : K5000")
Set b = Sheets("Import").Range("A1 : A5000")
Set y = Sheets("OVD").Range("AA1")
With Application.WorksheetFunction
x = .IfError(Index(a, .Match((.y(b)), b, 0)), ("Keine Angabe"))
End With
MsgBox x
End Sub
Wie muss "x=" aussehen oder ist der Ansatz schon falsch?
Bitte um Hilfe.
Gruß Thorsten

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Index,Vergleich
20.02.2014 12:46:15
Beverly
Hi Thorsten,
versuche es mit Evaluate:
Application.Evaluate("=IFERROR(INDEX(Import!K1:K5000,MATCH(OVD!AA1,Import!A1:A5000,0)),""Keine  _
Angabe"")")


AW: VBA Index,Vergleich
20.02.2014 13:15:47
Thorsten
Hallo Karin,
vielen Dank - funktioniert prima.
Das sieht schon besser aus als mein langes Geschripse, was ich versucht habe aus anderen Beispielen umzuarbeiten.
Dim x As Variant
x = Application.Evaluate("=IFERROR(INDEX(Import!K1:K5000,MATCH(OVD!AA1,Import!A1:A5000,0)),""Keine Angabe"")")
MsgBox x
Nun gibt die Msgbox aber logischer Weise nur denWert zurück.
Ich hätte gern noch Text davor und dahinter.
Beispiel: Preis x EUR
Kannst du da noch weiterhelfen?
Gruß Thorsten aus Leipzig

Anzeige
AW: VBA Index,Vergleich
20.02.2014 13:42:03
Beverly
Hi Thorsten,
x = "Preis " & Application.Evaluate("=IFERROR(INDEX(Import!K1:K5000,MATCH(OVD!AA1,Import!A1: _
A5000,0)),""Keine Angabe"")") & " €"


Dankeschön o.T.
20.02.2014 13:49:57
Thorsten
o.T.

AW: VBA Index,Vergleich
20.02.2014 12:46:28
Rudi
Hallo,
Sub Test()
Dim a As Range  ' Bereich
Dim b As Range  ' Suchbereich
Dim y As Range  ' Suchkriterium
Dim x As Variant, vRow
Set a = Sheets("Import").Range("K1 : K5000")
Set b = Sheets("Import").Range("A1 : A5000")
Set y = Sheets("OVD").Range("AA1")
vRow = Application.Match(y, b, 0)
If Not IsError(vRow) Then
x = a(vRow)
Else
x = "Keine Angabe"
End If
MsgBox x
End Sub

Gruß
Rudi

Anzeige
AW: VBA Index,Vergleich
20.02.2014 13:37:03
Thorsten
Hallo Rudi,
na super, funktioniert auch reibungslos.
Warum ist VBA nur so unterschiedlich, bzw, wo ist der Unterschied zu Karins Code?
Auch an dich die Frage (aber bitte erst Warten ob Karin antwortet, ihr sollt euch ja nicht doppelt bemühen), wie bekomme ich jetzt noch Text in die Msgbox?
Momentan gibt es mir z.B.einen Wert 48,4 zurück.
Eigentlich sollte drin stehen: Preis 48,40 EUR
Gruß Thorsten

AW: VBA Index,Vergleich
20.02.2014 13:46:48
Thorsten
Hallo Rudi,
o.k. hab`s rausgefunden (Absoluter Anfänger ;-))
MsgBox "Preis " & x & " EUR"
Da fehlt zwar noch die Null aber damit kann ich leben.
Nochmals Danke und Gruß Thorsten

Anzeige
AW: VBA Index,Vergleich
20.02.2014 14:57:02
Rudi
Hallo,
MsgBox "Preis " & format(x,"0.00") & " EUR"
Gruß
Rudi

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige