Sub alle_Namen_löschen()
Dim blatt As Worksheet
Dim name As name
Dim intwahl As Integer
intwahl = MsgBox("Das Makro löscht alle Namen! Wollen Sie das wirklich?", _
vbYesNo + vbQuestion, "Rückfrage")
If intwahl = 6 Then
For Each blatt In Worksheets
For Each nam In ActiveWorkbook.Names
If Right(nam.name, 10) = "Print_Areaa" _
Or Right(nam.name, 12) = "Print_Titles" Then _
Else nam.Delete
Next nam
Next blatt
End If
End Sub
Sub alle_Namen_löschen()
Dim oName As Name, rngVerweis As Range
'sollte der Name eine Formel sein
On Error Resume Next
'Schleife über alle Namen
For Each oName In ActiveWorkbook.Names
'Namen versuchen einem Rangeobjekt zuzuweisen
Set rngVerweis = Range(oName.Name)
'ist Rangeobjekt ein Zellbereich?
If Not rngVerweis Is Nothing Then
'Befindet sich dieses Rangeobjekt auf der aktuellen Tabelle?
If rngVerweis.Parent.Name = ActiveSheet.Name Then
'Name mit den Namen Print_Areaa o. Print_Titles nicht löschen
If Right(nam.Name, 10) <> "Print_Areaa" And Right(nam.Name, 12) <> "Print_Titles" Then
oName.Delete
End If
End If
End If
Next oName
'On Error GoTo 0 ' nur nötig wenn Makro hier weiter laufen sollte
End Sub
Gruß Tino