AW: Namen definieren bzw. kopieren ?
20.04.2009 21:12:35
Ramses
Hallo
Das geht nur mit VBA.
Probiere das mal aus
Sub Create_New_Names()
'by Ramses
Dim isCol As Long, tarCol As Long
Dim tarWks As String, oldName As String, newName As String
Dim tmpAddress As Range
Dim testName As Name
'Nur Namen die in dieser Tabelle vorkommen ändern
tarWks = "Tabelle1"
'Existierende Namen sind in der Tabelle jetzt an diese Spalte gebunden
'1 = A, 2 = B, 3 = C usw.
isCol = 1
'Namen sollen nun an diese Spalte gebunden werden
tarCol = 3
'Das ist der alte Begriff der in ALLLEN existierenden Namen vorkommen muss
oldName = "2008"
'Das ist der neue Begriff der in den Namen vorkommen soll
newName = "2009"
For Each testName In ThisWorkbook.Names
'prüfen ob der Name in der Zieltabelle vorkommt
If InStr(1, testName.RefersToLocal, tarWks) > 0 Then
'Prüfen ob der Suchbegriff "OldName" im Namen vorkommt
If InStr(1, testName.NameLocal, oldName) > 0 Then
'Address in einen Bereich umwandeln
Set tmpAddress = Range(Right(testName.RefersToLocal, Len(testName.RefersToLocal) - InStr(1, testName.RefersToLocal, "!")))
'Prüfen ob der Name an die Zielspalte "isCol" gebunden ist
If tmpAddress.Column = isCol Then
ActiveWorkbook.Worksheets(tarWks).Names.Add Name:=Replace(testName.NameLocal, oldName, newName, 1), _
RefersTo:="=" & tarWks & "!" & Cells(tmpAddress.Row, tarCol).Address
End If
End If
End If
Next
End Sub
Gruss Rainer