Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
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
VBA SVerweis auf geschlossene Datei
07.06.2015 12:12:40
Frank
Hallo zusammen, ich habe mal wieder ein VBA Problem zu lösen. Nachdem ihr mir schon super geholfen habt, wie ich eine EMail erzeugen kann, möchte ich nun noch einen Wert aus einer geschlossenen Arbeitsmappe per SVerweis in den EMail Body schreiben. Leider klappt mein Code nicht.
Sub Test()
Dim sPfad, sDatei, sTab, sRange, sSuchwert, sFormelString As String
sPfad = "'" & ThisWorkbook.Path & "\" 'Pfad
sDatei = "[Test.xlsx]" 'Datei
sTab = "Sheet1'!" 'Tabelle
sRange = Range("A1:B20").Address(ReferenceStyle:=xlR1C1) 'Zellbereich
sSuchwert = "5" 'Suchwert
'String zusammensetzen
sFormelString = sPfad & sDatei & sTab & sRange
vErgebnis = ExecuteExcel4Macro("VLOOKUP(" & sSuchwert & ", " & sFormelString & ",2,FALSE)")
MsgBox (vErgebnis)
End Sub
Die MsgBox habe ich an dieser Stelle aus Testzwecken eingebaut, um das Ergebnis des Verweises zu überprüfen. Leider liefert diese hier den Fehler "Typen unverträglich". Wenn ich die MsgBox weg lasse und das vErgebnis direkt in die EMail einbaue, funktioniert es auch nicht.
Für eure Hilfe wäre ich sehr dankbar.
Gruß
Frank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SVerweis auf geschlossene Datei
07.06.2015 13:45:42
Daniel
Hi
das Ergebnis deiner Funkiton kann auch ein Fehlerwert sein.
Einen Fehlerwert kann die Messagebox aber nicht direkt verarbeiten daher :
MsgBox CStr(vErgebnis)
beim Testen solltest du dir nicht nur das Ergebnis in der Messagebox ausgeben lassen, sondern erst auch mal die vollständige Formel, damit du siehst ob du die überhaupt richtig geschrieben hast.
MsgBox "VLOOKUP(" & sSuchwert & ", " & sFormelString & ",2,FALSE)"
prinzipell funktioniert dein Code bei mir und liefert auch das passende Ergebnis.
blieben halt noch die Fehlermöglichkeiten, die ich bei dir nicht überprüfen kann wie:
- Datei und Tabellenblattname richtig geschrieben
- Suchbegriff in der ersten Spalte der Suchmatrix nicht vorhanden
Gruß Daniel

Anzeige
AW: VBA SVerweis auf geschlossene Datei
07.06.2015 21:09:15
Frank
Hallo Daniel,
schon mal vielen Dank für deine Hilfe. Dank deines ersten Tipps weiß ich schon mal, dass ich den Fehler 2042 zurück bekomme. Den kann ich mir allerdings nicht erklären. Die Datei ist auf jeden Fall richtig geschrieben, es gibt in der Mappe auch nur 1 Tabellenblatt. Auch wenn ich für den Suchwert einen Text nehme und diesen in die erste Spalte der Suchmatrix schreibe, wird der gleiche Fehler angezeigt. Woran könnte es also noch liegen?
Gruß
Frank

AW: VBA SVerweis auf geschlossene Datei
07.06.2015 22:40:47
Daniel
Hi
naja, wie gesagt.
Datei- und Tabellenblattname müssen richtig geschrieben sein.
als Tabellenblattnamen musst du denjenigen verwenden, der auch auf dem Reiter steht( dh, den Indexnamen).
"Sheet1" würde bedeuten, dass die Quelldatei mit einem englischen Excel erstellt wurde, bei einem Deutschen würde da "Tabelle1" stehen müssen.
was passiert denn, wenn du mal nicht das Excel4Makro ausführst, sondern stattdessen die Formel in eine Zelle schreibst:
Range("A1").FormulaR1C1 = "=VLOOKUP(" & sSuchwert & ", " & sFormelString & ",2,FALSE)"
wie gesagt, der Fehler kann auch daher kommen, dass dein Suchwert nicht in der Suchmatrix vorkommt, aber dass musst du selber überprüfen.
Beachte, dass dein Suchwert hier als Zahl vorliegt und nicht als Text.
einen Text müsstest du zusätzlich in Anführungszeichen setzen und zwar so, dass sie bestandteil der Formel werden:
sSuchwert = """5""" 'Suchwert
das musst du immer so machen, wenn du nach einem Texte suchen willst und nicht nach einer Zahl.
Gruß Daniel
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige