Dazu benötigst du eine VBA-udFkt,...
21.06.2009 03:44:23
Luc:-?
...Peter,
wie bspw die hier folgende...
Rem Verwendung eines Textes (=vorhand Name!) als Bereichsbezug
' Vs 1.2a -Autor: LSr -1Pub: 20090621 Herber -CDate: 2004/5 -LUpd: 20070706t
Function T2RName(ByVal BerName As Variant) As Variant
Dim i As Integer
If IsArray(BerName) Then BerName = BerName(1) 'MxFml-Sicherung f.Einzelname
BerName = Trim(BerName)
If InStr(BerName, " ") > 0 Then BerName = Replace(BerName, " ", "")
With ActiveWorkbook
For i = 1 To .Names.Count
If Replace(Replace(.Names(i).Name, "'", ""), _
ActiveSheet.Name & "!", "") = BerName Then Exit For
Next i
If i > .Names.Count Then
T2RName = CVErr(xlErrNA)
Else: T2RName = Evaluate(.Names(i).Value)
End If
End With
End Function
Dazu im VB-Editor (Menü Entwicklertools - Visual Basic) zu deinem Projekt oder besser in einer Sammelmappe für VBA-Prozeduren (die du auch als AddIn installieren könntest) mit Rechtsklick auf Baumstruktur, Einfügen - Modul wählen, ein StddModul hinzufügen und dahinein die obige FktsProzedur kopieren. Danach kannst du im TabBlatt in einer Zelle bspw =T2RName(B$1&"_"&C1) schreiben. Wenn in B1 Brot und in C1 Einkauf steht, erhältst du den entsprechenden Wert. Bezeichnet der Name einen Bereich aus mehreren Zellen musst du die udFkt in einer Matrixfml verwenden, wenn du alle Werte wiedergeben willst, z.B. so...
{=T2RName(B$1&"_"&C1)}
...und dabei die gewünschte/erforderliche Zellenanzahl in gleicher Richtung wie der Namensbezug (also ggf als Zeile oder Spalte) auswählen ({} wdn bei Eingabeabschluss mit [Strg][Umsch][Enter] automatisch erzeugt! Fml muss nur in die 1.Zelle der Auswahl eingegeben wdn!).
In Fmln wird in diesem Fall stets mit allen Werten des Namens gerechnet, also bspw...
=SUMME(T2RName(B$1&"_"&C1))
Einzige Bedingung für die Anwendung ist... Der Name muss im betroffenen TabBlatt definiert sein! Die udFkt kann keine neuen Namen kreieren!
Gruß + schöSo, Luc :-?