Ich habe eine Tabelle mit drei identisch großen Bereichen (Spalten), denen ich je einen Namen vergeben habe: ‚Personen‘, ‚Alter‘ und ‚Größe‘
Nun möchte ich zu einer speziellen Person (z.B. Thommes) wahlweise (indem in $A$1 ‚1‘ für Alter oder andere Werte für Größe eingegeben wird)
deren Alter oder deren Körpergröße heraussuchen lassen.
Da die Namensliste nicht alphabetisch sortiert ist, verwende ich folgende Tabellenfunktion:
=INDEX(WENN($A$1=1;Alter;Größe);VERGLEICH(„Thommes“
ersonen;0);1)
Soweit, sogut.
Nun muss ich das Ganze leider in einer VBA-Function(!!) unterbringen und krieg das überhaupt nicht auf die Reihe.
Der Funktionsaufruf sollte folgendermaßen lauten: =Such_funktion($A$1;„Thommes“).
Die 3 Bereiche ‚Personen‘, ‚Alter‘ und ‚Größe‘ möchte ich nur im Notfall mit übergeben müssen
Kann mir das jemand „übersetzen“?
verwende in VBA den Befehl:
formulalocal
verwende in VBA den Befehl:
formulalocal
Mir erzählt aber die Hilfe zu formulalocal das ich damit die in eine Zelle eingegebene Formel erhalte?!?
Ich brauchs aber genau andersrum. Ich brauch einen VBA-Code, der genau das selbe Ergebnis liefert, wie die Formel =INDEX(VERGLEICH( … )), die ich in die Zelle eingeben kann!
Sorry, wenn die Frage so mißverständlich formuliert war und trotzdem Danke für die Bemühungen
hab lange genug gesurft und probiert …
Die Tabellenformel
=INDEX(WENN($A$1=1;Alter;Größe);VERGLEICH(„Thommes“
ersonen;0);1)
kann als VBA-Function so geschrieben werden:
Function suchfunktion() As Double
Application.Volatile True
zeile = Application.WorksheetFunction.Match(„Thommes“, [Personen], 0)
If [A1] = 1 Then such = [Alter] Else such = [Größe]
suchfunktion = Application.WorksheetFunction.Index(such, zeile, 1, 1)
End Function
Trotzdem vielen Dank an alle, die die Anfrage gelesen und sich Gedanken dazu gemacht haben!!!
Thommes