AW: SVERWEISE in Zellenbezuege umwandeln
30.11.2005 16:27:26
Reinhard
Hi Otto,
mein makro macht aus SVERWEIS($A6,Input!$A$1:$E$5,3,0)
Input!C4
bezogen auf diese Tabelle:
a 10
b 20
c 30
d 40
e 50
d
https://www.herber.de/bbs/user/28853.xls
Nachfolgend der Code
Gruß
Reinhard
Dim Einzel
Dim Spalten
Dim SP1
Dim blatt
Function Zeile(ByVal SV As String) As Long
'Spalten = Split(Zelle, ":")
SV = Replace(SV, "$", "")
SV = Replace(SV, "SVERWEIS(", "")
SV = Replace(SV, ")", "")
Einzel = Split(SV, ",")
Spalten = Split(Einzel(1), ":")
pos = InStr(Spalten(0), "!")
blatt = ""
If pos <> 0 Then
blatt = Left(Spalten(0), pos - 1)
Spalten(0) = Mid(Spalten(0), pos + 1)
End If
For n = 1 To Len(Spalten(0))
If IsNumeric(Mid(Spalten(0), n, 1)) Then
SP2 = SP2 & Mid(Spalten(0), n, 1)
Else
SP1 = SP1 & Mid(Spalten(0), n, 1)
End If
Next n
For n = 1 To Len(Spalten(1))
If IsNumeric(Mid(Spalten(1), n, 1)) Then
SP3 = SP3 & Mid(Spalten(1), n, 1)
End If
Next n
SP = SP1 & SP2 & ":" & SP1 & SP3
If pos = 0 Then
With ActiveSheet
Zeile = Application.WorksheetFunction.Match(Range(Einzel(0)), Range(SP))
End With
Else
With Worksheets(blatt)
Zeile = Application.WorksheetFunction.Match(Range(Einzel(0)), Range(SP))
End With
End If
'SVERWEIS(K$6,Input!$A$2:$K$56,3,0)
End Function
Sub test()
zei = Zeile("SVERWEIS($A6,Input!$A$1:$E$5,3,0)")
spa = Range(SP1 & 1).Column + Einzel(2) - 1
If spa <= 26 Then
spaA1 = Chr(64 + spa)
Else
z = Int(spa / 26)
spa = spa - z * 26
spaA1 = Chr(64 + z) & Chr(64 + spa)
End If
MsgBox blatt & "!" & spaA1 & zei
SP1 = ""
End Sub