AW: Eigene Function funktioniert liefert #Wert! bei Blattwechsel
12.01.2024 15:46:16
Yal
Hallo G.L.
deine Formel scheint "relativ" einfach zu sein. Das einzige, was einen Umweg über VBA notwendig macht, ist das Prüfen der Schriftfarbe. Wenn Du nur diese eine Tätigkeit in einer UDF (user defined function) ablagerst, kannst Du mit Exceln formeln arbeiten.
Public Function TextFarbe(ByVal Zelle As Range) As Long
'nur eine Zelle prüfen (die erste)
TextFarbe = Zelle.Cells(1).Font.ColorIndex
End Function
Wenn Du dann die Lösung mit excel Formeln hast, kannst Du aufbauen.
Ein doppelter Verweis (also Kombination von SVerweis und WVerweis) kann man auch wie folgt implementieren:
Public Function QuerVerweis(ByVal SuchInZeilüberschrift, ByVal Zeilüberschrift As Range, ByVal SuchInSpaltüberschrift, ByVal Spaltüberschrift As Range)
If TypeOf SuchInZeilüberschrift Is Range Then SuchInZeilüberschrift = SuchInZeilüberschrift.Value
If TypeOf SuchInSpaltüberschrift Is Range Then SuchInSpaltüberschrift = SuchInSpaltüberschrift.Value
QuerVerweis = Intersect(Zeilüberschrift.EntireRow, Spaltüberschrift.EntireColumn).Cells( _
WorksheetFunction.Match(SuchInZeilüberschrift, Zeilüberschrift, 0), _
WorksheetFunction.Match(SuchInSpaltüberschrift, Spaltüberschrift, 0))
End Function
am Beispiel: =QuerVerweis(A7;$A$2:$A$4;B6;$B$1:$D$1)
VG
Yal