Anzeige
Archiv - Navigation
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Löschen der Namen

Löschen der Namen
29.02.2008 23:24:00
Lemmi
Hallo zusammen,
ich habe , so hoffe ich, nur ein kleines Problem!
wie kann ich die unter Einfügen/ Namen /Definieren alle Inhalte zusammen löschen!
Gibt es ein Makro um das Feld zu bereinigen?
Gruß
Lemmi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen der Namen
01.03.2008 00:18:00
Renee
Hallo Lemmi,
In diesem Forum gibts auch eine Archiv und mit dem ersten Link unter dem Suchbegriff Namen löschen wirst du fündig.
GreetZ Renée

AW: Löschen der Namen
01.03.2008 01:15:52
fcs
Hallo Lemmi,
in etwas vereinfachter Form hatte ich das schon in deine Werkstoff-Auswahldatei eingebaut.
Je nachdem was man in einer Datei alles so treibt legt Excel möglichweise noch andere unsichtbare Namen an, deren Löschen evtl. die Funktionalität in der Datei stört. Deshalb auch noch 2 Makros zum Anzeigen von Infos zu Namen. Also Vorsicht!
Gruß
Franz

Sub Namenloeschen()
'Löschen von Bereichsnamen in der Arbeitsmappe
Dim objName As Name
If MsgBox("Namen in Datei löschen?", vbOKCancel + vbQuestion, _
"Namen Löschen") = vbOK Then
For Each objName In ThisWorkbook.Names
Select Case IIf(InStr(1, objName.Name, "!") > 0, Mid(objName.Name, _
InStr(1, objName.Name, "!") + 1), objName.Name)
'Liste 1 der Ausnahmen userdefinierte Namen, ggf. ergänzen!!!
Case "DatenTab", "Werkstoffgruppe"
'do nothing
'Liste 2 der Ausnahmen, Druckbereiche, -Titel der Tabellen
Case "Print_Area", "Print_Titles"
'do nothing
'Liste 3 der Ausnahmen, Autofilter- und Spezialfilter-Bereiche
Case "_FilterDatabase", "Criteria", "Extract"
'do nothing
Case Else
objName.Delete
End Select
Next
End If
Set objName = Nothing
End Sub
Sub NamenAnzeigenmitInfo()
'Zeigt die Namen einzeln in einer Message-Box an mit Detail-Informationen
Dim objName As Name
For Each objName In ActiveWorkbook.Names
With objName
If MsgBox("Name:         " & .Name & vbLf _
& "Name lokal: " & .NameLocal & vbLf _
& "Wert:            " & .Value & vbLf _
& "sichtbar:      " & IIf(.Visible, "Ja", "Nein") & vbLf, vbOKCancel, _
"Namen in aktiver Arbeitsmappe") = vbCancel Then Exit For
End With
Next
Set objName = Nothing
End Sub
Sub NamenAnzeigenListe()
'Zeigt die Namen als Liste in einer Message-Box an
Dim objName As Name, strText As String, Zaehler As Integer
For Each objName In ActiveWorkbook.Names
strText = strText & Chr$(10) & objName.Name
Zaehler = Zaehler + 1
If Zaehler = 21 Then
If MsgBox(strText, vbOKCancel, "Liste der Namen in aktiver Arbeitsmappe") = _
vbCancel Then
Exit For
Else
strText = ""
Zaehler = 0
End If
End If
Next
If strText  "" Then
MsgBox strText, vbOKOnly, "Liste der Namen in aktiver Arbeitsmappe"
End If
Set objName = Nothing
End Sub


Anzeige
AW: Löschen der Namen
01.03.2008 06:49:33
Jens
Hi Lemmi
Wenn Du ALLE definierten Namen in der aktiven Mappe löschen möchtest, dann so:

Sub tt()
Dim Nm As Name
For Each Nm In ActiveWorkbook.Names
Nm.Delete
Next
End Sub


Gruß aus dem Sauerland
Jens

AW: Löschen der Namen
01.03.2008 09:09:00
Renee
Hallo Jens,
Mach mal folgendes:
Erstelle eine kleine Tabelle mit ein paar Werten und einem Autofilter.
Filtere nach einem Wert.
Lass dein Makro laufen.
Stell im Dropdown wieder auf Alle.........oops
Du hast auch einen internen, reservierten Namen gelöscht!
Wenigsten der Autofilter wird nicht gelöscht, wenn du deinen Code so änderst:

Sub tt()
Dim Nm As Name
For Each Nm In ActiveWorkbook.Names
If InStr(Nm.Name, "_FilterDa") = 0 Then Nm.Delete
Next
End Sub


GreetZ Renée
P.S. es gibt noch mehr reservierte Namen, aber der _FilterDatabase ist der ekligste, um den Fehler zu suchen, wenn irgendwo per VBA Namen gelöscht werden. Natürlich sollte dann der Begriff _FilterDa in keinem selbstdefinierten Namen vorkommen, sonst wird der auch nicht gelöscht.

Anzeige
@Renée
01.03.2008 18:24:41
Jens
Hi Renée
Hab es grad mal ausprobiert. Man kann zwar die Zeilen wieder einblenden, aber die Anweisung für den Autofilter funzt halt nicht mehr.
Danke Dir für die Info.
Das kannte ich bisher so nicht. Aber man lernt ja (von Frau) nie aus ;o)
Aber dann hätt ich doch nochmal ne Frage dazu:
Könnte man über eine VBA-Anweisung denn irgendwie unterscheiden, ob es ein interner oder ein manuell vergebener Name ist?
So nach dem Motto:
Lösche alle Namen, die manuell vergeben wurden / die nicht intern sind?
Gruß aus dem Sauerland
Jens

Leider gibts keine Eigenschaft, ...
01.03.2008 20:44:23
Renee
welche diese Unterscheidung macht.
GreetZ Renée

Anzeige
AW: @Renée
01.03.2008 21:02:07
Josef
Hallo Jens,
das könnte man so lösen.
Sub deleteNames()
Dim varExclude() As Variant
Dim nName As Name
Dim n As Integer, bDel As Boolean

varExclude = Array("Auto_Activate", "Auto_Close", "Auto_Deactivate", _
    "Auto_Open", "Consolidate_Area", "Data_Form", "Database", "Criteria", _
    "Extract", "Print_Area", "Print_Titles", "Recorder", "Sheet_Title", _
    "_FilterDatabase")

For Each nName In ThisWorkbook.Names
    bDel = True
    For n = 0 To UBound(varExclude)
        If nName.Name Like "*" & varExclude(n) Then
            bDel = False
            Exit For
        End If
    Next
    If bDel Then nName.Delete
Next

End Sub



Gruß Sepp



Anzeige
Danke Euch
02.03.2008 10:04:00
Jens
Hallo Renée, Hallo Sepp
Werd mich damit wohl mal genauer befassen, wenn es die Zeit zulässt.
Danke Euch.
Wünsch Euch noch einen schönen Sonntag.
Gruß aus dem Sauerland
Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige