Nachstehender Code funktioniert, wenn ich nur die eine Datei offen habe. Nun kommt es vor, dass ich gleichzeitig mehrere Dateien offen habe, welche die gleichen Worksheets haben und auch diesen Code. Dann kommt es vielfach vor, dass der Code unten bei "ActiveWorkbook.Names.Add _ .." stoppt mit "Laufzeitfehler '1004' - Anwendungs- oder objektdefinierter Fehler". Da dies nur passiert, wenn ich mehrere Excel-Dateien offen habe, vermute ich, dass der Code nicht eindeutig genug ist, weiss jedoch nicht, wo das Problem liegt.
Vielleicht kann mir jemand weiterhelfen?
Gruss, Peter
Sub Bereichsnamen()
'in Zeile 1 eingegebene Namen werden als Bereichsnamen für die entsprechende Spalte
'definiert, wobei der Bereichsname ab Zeile 2 beginnt und bis zum Ende des Datenbereichs
'(anhand von Spalte B bestimmt) geht
Dim lngSpa As Long, lngAnf As Long, lngEnd As Long, lngSpaEnd As Long, lngDef As Long
Dim i As Integer
Dim Bereich As Range
Dim lngB As Long, lngC As Long, lngV As Long
Dim wsCW As Worksheet
ThisWorkbook.Activate
Set wsCW = Sheets("CW")
lngDef = 1 'vorgesehene Namen in Zeile 1
lngAnf = 2 'Bereiche beginnen bei Zeile 2
lngSpa = 2 'Spalte B ist relevant zur Bestimmung der letzten Zeile
lngEnd = wsCW.Cells(65536, lngSpa).End(xlUp).Row 'ermittelt letzten Eintrag in Spalte _
B
lngSpaEnd = wsCW.Cells(lngDef, 256).End(xlToLeft).Column
For i = 1 To lngSpaEnd
If Cells(1, i) "" Then
Set Bereich = Range(wsCW.Cells(lngAnf, i), wsCW.Cells(lngEnd, i))
ActiveWorkbook.Names.Add _
Name:=wsCW.Cells(1, i).Value, _
RefersTo:=Bereich, Visible:=True
End If
Next
End Sub