Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verweis

Forumthread: Verweis

Verweis
27.10.2005 21:33:20
kalle
Hi Leute,
ich hab da mal ein Beispiel.
https://www.herber.de/bbs/user/27857.xls
Ich habe folgendes Problem.
Ich möchte in Tabelle1 einen Wert eingeben, die anderen Tabellen nach diesem wert durchsuchen und wenn vorhanden den passenden Wert dazu zurückgeliefert bekommen. Wie ein VERWEIS. Leider klappt es scheinbar mit einem VERWEIS nicht.
Die Tabellen können aber auch noch mehr werden und heisen auch verschieden z.B
Wurst, Käse, Brot usw.
wer kann mir helfen?
gruß
kalle
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verweis
27.10.2005 22:20:31
Uduuh
Hallo,
das ist so nicht möglich. Die Tabellen müssen inexierbar sein.
Siehe hier:
http://www.excelformeln.de/formeln.html?welcher=233
Anders ist nur eine VBA-Lösung denkbar.
Gruß aus’m Pott
Udo

Anzeige
AW: Verweis
27.10.2005 22:24:12
kalle
ich kann die tabellen nicht mehr ändern.
hat jemand ne idee wie ich es mit vba lösen kann?
gruß
kalle
AW: Verweis
27.10.2005 22:24:16
Matthias
Hallo Kalle,
nimm diese Funktion:

'Funktion sucht Inhalt von "Wert" in Spalte [Suchspalte] der Tabellen ab Index[2] bis Ende
' und gibt den Wert in [Ergebnisspalte] zurück
Function HoleWert(Wert, Suchspalte As Integer, Ergebnisspalte As Integer)
Dim sh As Worksheet
Dim b_index As Integer
Dim z As Range
b_index = 2
Do While b_index <= Sheets.Count
Set z = Sheets(b_index).Columns(Suchspalte).Find(What:=Wert, LookAt:=xlWhole)
If Not z Is Nothing Then Exit Do
b_index = b_index + 1
Loop
If z Is Nothing Then
HoleWert = "#NV"
Else
HoleWert = z.Offset(0, Ergebnisspalte - Suchspalte)
End If
End Function

Der erste gefundene Wert wird verwendet, evtl. folgende Treffer werden ignoriert.
In Tabelle1, B2 dann: =HOLEWERT(A2;1;2)
Wenn Werte in den zu durchsuchenden Tabellen verändert werden, wird die Formel nicht automatisch aktualisiert.
Wenn du das willst, schreibe nach der Zeile
Function HoleWert(Wert, Suchspalte As Integer, Ergebnisspalte As Integer)
die Zeile:
Application.Volatile
Das geht aber bei sehr vielen Änderungen/Formeln auf die Performance.
Gruß Matthias
Anzeige
AW: Verweis
27.10.2005 22:38:47
kalle
Besten Dank, das scheint sehr gut aus zu sehen,
aber wo und wie muß ich es einfügen damit es auch funktioniert?
gruß
kalle
AW: Verweis
27.10.2005 22:44:23
kalle
besten dank ich hab's
gruß
kalle
AW: Frage?
27.10.2005 22:45:15
Bernd
Kannst du eigentlich selbst auch mal was lösen oder lasst du dir deine Mappe zusammenbauen?
Anzeige
AW: Er hat's ja schon - o.T.
27.10.2005 22:46:55
Matthias
-
AW: Frage?
27.10.2005 22:53:36
kalle
was bist du denn für einer?
AW: Frage?
27.10.2005 23:12:15
Matthias
Hallo Kalle,
von einer anderen Mappe aus:
heißt das, es sollen dann alle Blatter der Mappe durchsucht werden?
Gruß Matthias
Anzeige
AW: Frage?
27.10.2005 23:15:47
kalle
Ich habe eine mappe in der die gesuchten werte stehen und eine in der ich suche und das ergebnis angezeigt bekommen möchte.
im prinzip ist die tabelle ergebnisse aus dem beispiel eine andere mappe.
gruß
kalle
AW: Frage?
27.10.2005 23:18:40
Matthias
Hallo Kalle,
und wie soll die "Suchmappe" referenziert werden? Durchd en Namen?
Was, wenn sie nicht geöffnet ist? Soll sie dann geöffnet werden? In welchem Pfad?
Gruß Matthias
Anzeige
AW: Frage?
27.10.2005 23:24:34
kalle
ja sie soll geöffnet werden wenn sie geschlossen ist.
wäre cool wenn ein relatiever pfad möglich wäre.
ein verzeichnis zurück und dann
büro\arbeitsmappe.xls
gruß
kalle
AW: Frage?
27.10.2005 23:43:11
Matthias
Hallo Kalle,
das Öffnen der Datei geht leider nicht innerhalb einer Funktion, wenn sie von einer Formel aufgerufen wird :-(
Dann musst du sie halt manuell öffnen:

Function HoleWert(Wert, Mappe As String, Suchspalte As Integer, Ergebnisspalte As Integer)
Dim WB As Workbook
On Error Resume Next
Set WB = Workbooks(Mappe)
If Err.Number > 0 Then
HoleWert = "#NV"
Exit Function
End If
On Error GoTo 0
Dim sh As Worksheet
Dim z As Range
For Each sh In WB.Worksheets
Set z = sh.Columns(Suchspalte).Find(What:=Wert, LookAt:=xlWhole)
If Not z Is Nothing Then Exit For
Next sh
If z Is Nothing Then
HoleWert = "#NV"
Else
HoleWert = z.Offset(0, Ergebnisspalte - Suchspalte)
End If
End Function

=HOLEWERT(B1;"Mappe.xls";1;2)
Gruß Matthias
Anzeige
AW: Frage?
27.10.2005 23:57:36
kalle
Besten dank,
das scheint wunderbar zu funktionieren.
ich werdes morgen mal in aller ruhe probieren.
dankeschön
gruß
kalle
;

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