Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Verweis-Formel in VBA

Verweis-Formel in VBA
21.07.2008 12:36:00
Petra
Hallo allerseits
folgendes VBA-Schnipsel funktioniert einwandfrei

ActiveCell.FormulaR1C1 = _
"=LOOKUP(2,1/(Bew!R1C2:R500C2&Bew!R1C3:R500C3=R4C33&RC8),Bew!R1C3:R500C3 & "" "" &Bew!R1C4:R500C4)"


so schaut die Formel dann im Blatt aus:
=VERWEIS(2;1/(Bew!$B$1:$B$500&Bew!$C$1:$C$500=$AG$4&$H15);Bew!$C$1:$C$500 & " " &Bew!$D$1:$D$500)
Mein Problem: ich brauche das Ergebnis als MessageBox
folgendes hat nicht funktioniert (Fehler 2015 - #WERT)
dim a
a = Evaluate("=LOOKUP(2,1/(Bew!R1C2:R500C2&Bew!R1C3:R500C3=R4C33&RC8),Bew!R1C3:R500C3 & "" "" &Bew!R1C4:R500C4)")
msgbox a
Was mache ich falsch? Wer hat den richtigen Tipp?
Liebe Grüße Petra

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verweis-Formel in VBA
21.07.2008 13:11:00
Arthur
Hallo Petra.
Was kommt denn mit der Formel im Tabellenblatt heraus? Vielleicht ist "#Wert" ja das richtige Ergebnis, nämlich, dass aufgrund der ausgewählten Zellen kein gültiger Wert errechnet werden kann. Zudem sehe ich den Bezug zu einer Zelle in deinem Formelaufruf aus VBA nicht. R1C2 ist ein relativer Bezug , der ohne Zelle relativ direkt ins Nirvana zeigt. Gibt Excel doch entweder einen Hinweis, von wo aus es den Bezug starten soll oder feste Adressen mit.
Vielleicht hilft dir das.
Gruß
Arthur

Anzeige
AW: Verweis-Formel in VBA
21.07.2008 13:19:01
Petra
Hallo Artur
Wie ich bereits in meiner Anfrage schrieb, die Formel funktioniert und gibt das richtige Ergebnis aus. Mein Problem ist jedoch, ich brauche das Formelergebnis nicht in einer Zelle, sondern will(muß) das Ergebnis einer Messagebox zuweisen.
Wer hat den entscheidenden Tipp?
Liebe Grüße Petra

Anzeige
AW: Verweis-Formel in VBA
21.07.2008 16:48:34
Rudi
Hallo,
vielleicht so:

Sub tt()
Dim Erg
With Sheets("Bem")
Erg = WorksheetFunction.Lookup(2, 1 / (.Range("B1:B500") & .Range("c1:c500") _
= Range("AG4") & Cells(ActiveCell.Row, 8)), _
.Range("C1:C500") & " " & .Range("D1:D500"))
End With
MsgBox Erg
End Sub


Gruß
Rudi

Anzeige
AW: Verweis-Formel in VBA
22.07.2008 18:39:00
Petra
Hallo Rudi
danke für Deinen Beitrag, aber es kommt der Laufzeitfehler 13, Typen unverträglich.
Was ich brauche, ist eigentlich "nur" ein SVERWEIS auf 2 Spalten , siehe auch
http://www.excelformeln.de/formeln.html?welcher=30
aber das Ergebnis muß einer MSGBOX zugewiesen werden.
Vielleicht hast Du noch einen Tipp für mich.
Liebe Grüße Petra
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verweis-Formel in VBA nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe in den Visual Basic for Applications (VBA)-Editor. Dies kannst Du über die Tastenkombination ALT + F11 tun.

  2. Füge ein neues Modul hinzu, indem Du im Projekt-Explorer mit der rechten Maustaste auf "Einfügen" klickst und dann "Modul" auswählst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub VerweisInMessageBox()
       Dim Erg As Variant
       With Sheets("Bew")
           Erg = WorksheetFunction.Lookup(2, 1 / (.Range("B1:B500") & .Range("C1:C500") = Range("AG4") & Cells(ActiveCell.Row, 8)), _
           .Range("C1:C500") & " " & .Range("D1:D500"))
       End With
       MsgBox Erg
    End Sub
  4. Stelle sicher, dass Du die richtigen Blattnamen und Bereichsangaben verwendest. In diesem Beispiel wird das Blatt "Bew" verwendet.

  5. Führe das Skript aus, um das Ergebnis in einer MessageBox anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler 2015 - #WERT: Dieser Fehler tritt häufig auf, wenn die Formel nicht richtig evaluiert werden kann. Überprüfe, ob alle Zellbezüge korrekt sind und ob die Werte in den Zellen, auf die verwiesen wird, tatsächlich vorhanden sind.
  • Laufzeitfehler 13 - Typen unverträglich: Dieser Fehler kann auftreten, wenn Du versuchst, unterschiedliche Datentypen zusammenzuführen. Stelle sicher, dass die Werte, die Du in der MessageBox anzeigen möchtest, vom richtigen Typ sind (z. B. Text).

Alternative Methoden

Eine weitere Möglichkeit, um Werte in einer MessageBox anzuzeigen, ist die Verwendung der XVERWEIS-Funktion in Excel VBA. Diese Methode ist besonders nützlich, wenn Du nach einem bestimmten Wert in einer Tabelle suchst und dabei mehrere Kriterien berücksichtigen möchtest. Der Code könnte so aussehen:

Sub XVerweisInMessageBox()
    Dim Erg As Variant
    Erg = Application.WorksheetFunction.XLookup(Range("AG4"), Sheets("Bew").Range("B1:B500"), Sheets("Bew").Range("C1:C500"))
    MsgBox Erg
End Sub

Praktische Beispiele

Ein praktisches Beispiel für den Einsatz einer VBA-Verweis-Formel könnte so aussehen:

  • Angenommen, Du hast eine Liste von Produkten in den Spalten B und C, und Du möchtest den Preis eines Produkts basierend auf dem Namen in Zelle AG4 abfragen. Mit dem oben genannten Code wird das Ergebnis in einer MessageBox angezeigt.

Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass Du alle Variablen deklarierst. Dies hilft Dir, Fehler zu vermeiden.
  • Verwende Debug.Print vor der MsgBox, um den Wert in der Konsole zu überprüfen, bevor Du ihn anzeigst. So kannst Du Fehler leichter identifizieren.
Debug.Print Erg
MsgBox Erg

FAQ: Häufige Fragen

1. Wie kann ich mehrere Kriterien in einer VBA-Verweis-Formel verwenden?
Du kannst die Bedingungen in den Formeln kombinieren, indem Du die logischen Operatoren AND oder & verwendest, um mehrere Zellen zu vergleichen.

2. Welche Excel-Version benötige ich für die Verwendung von XVERWEIS in VBA?
Die XVERWEIS-Funktion ist in Excel 365 und Excel 2021 verfügbar. Stelle sicher, dass Du eine dieser Versionen verwendest, um die volle Funktionalität zu nutzen.

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