Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
256to260
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
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Namen per VBA bquem löschen?

Namen per VBA bquem löschen?
22.05.2003 09:27:56
Martin
Hallo,

mittels VBA lösche und benenne ich Bereiche in einer Arbeitsmappe, da der Bereich ständig aktuell gehalten werden muss. Das sieht folgendermassen aus:


Sub SetRNG()
Application.ScreenUpdating = False

With ActiveWorkbook
.Names("rngIFA_UAN").Delete
.Names("rngIFA_Name").Delete
usw.
[insgesamt wohl um die 90!]

End With

Sheets("IFA").Select

With ThisWorkbook.Names
.Add "rngIFA_UAN", Range("A2:" & Range("A2").End(xlDown).Address)
.Add "rngIFA_Name", Range("B2:" & Range("B2").End(xlDown).Address)
usw.
End With

Sheets("Institutions").Select
CODE ..

Insgesamt werden es wohl so um die 30 Bereiche und das für drei Mappen. Wie man sich vorstellen kann eine ziemliche Tipparbeit, wenn ich das alles eingeben will.

Alle hierfür relevanten Bereiche fangen mit "rng" an.
Gibt es eine Möglichkeit, zB anzugeben, dass alle Bereichsnamen, die mit "rng" anfangen gelöscht werden sollen, anstatt alle einzeln anzugeben?

Gruss,
Martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Namen per VBA bquem löschen?
22.05.2003 09:31:22
Michael Scheffler
Sub Loesche()
Dim iName As Integer
For iName = 1 To ThisWorkbook.Names.Count
If ThisWorkbook.Names(iName) Like "rng*" Then
ThisWorkbook.Names(iName).Delete
End If
Next iName
End Sub
Re: Namen per VBA bquem löschen?
22.05.2003 09:36:05
Martin
Vielen Dank Michael, werde es gleich ausprobieren.

Gruss,
Martin

Halt, doch nicht!?
22.05.2003 09:54:16
Martin
Michael,

xl erkennt den Bereich nicht, egal, ob er "rngA" oder "rng1" oder sonstwie heisst.

Wie kann das sein?

Martin

Re: Halt, doch nicht!?
22.05.2003 10:27:52
Michael Schirow
hi Martin,

kleine Korrektur an Michaels Code:

Sub Loesche()
Dim iName As Integer
For iName = 1 To ThisWorkbook.Names.Count
If ThisWorkbook.Names(iName).name Like "rng*" Then
ThisWorkbook.Names(iName).Delete
End If
Next iName
End Sub

MfG, Michael2

Anzeige
nach delete iName zurücksetzen
22.05.2003 10:43:42
RAnton
Die Funktion kann so nicht funktioniern, da iName nicht zurückgesetzt wird nach dem Löchen.
Besser ist es so:

Sub DeleteNames()
Dim i As Integer
Dim wb As Workbook

For Each wb In Workbooks

For i = 1 To wb.Names.Count
If i > wb.Names.Count Then Exit For
Debug.Print wb.Name & " - " & wb.Names(i).Name
If InStr(wb.Names(i).Name, "rng") = 1 Then
Debug.Print wb.Name & " - " & wb.Names(i).Name & "---deleted"
wb.Names(i).Delete
i = i - 1
End If
Next i

Next wb
End Sub

Hier haben wir den Vorteil, daß wir über aller Workbooks laufen können (wenn wir wollen)

Viel Spaß

RAnton

Anzeige
Re: nach delete iName zurücksetzen
22.05.2003 11:09:20
Michael Schirow
Hi Anton,

hast recht, da muss man beim löschen aufpassen. Ich machs
lieber so:



Sub NamenLoeschen()
Dim i As Integer
Dim num As Integer

With Workbooks("test.xls").Names
For i = .Count To 1 Step -1
If .Item(i).Name Like "rng*" Then
Debug.Print .Item(i).Name & " gelöscht"
.Item(i).Delete
End If
Next
End With

End Sub


MfG, Michael

DANKE an alle!
22.05.2003 12:11:51
Martin
Klappt jetzt hervorragend.

M.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige