Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
688to692
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
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Betreff
Datum
Anwender
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?
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
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
Anzeige
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige