Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

automatische Umbenennung bei Namenskonflikt

automatische Umbenennung bei Namenskonflikt
mayblue
Hallo,
ich führe in einer excel-Datei auf mehreren Tabellen-Blättern eine Prozessberechnung durch. Die Tabellen Blätter sind durch etliche Bezüge miteinander verbunden und innerhalb der Tabellenblätter sind Namen für diverse Bereiche vergeben. Diese Benennung der Bereiche erscheint mir notwendig, um via Makro ein bestimmtes Set an Zeilen/Spalten ansprechen zu können auch wenn davor Zeilen/Spalten eingefügt oder gelöscht wurden.
Nun möchte ich via Makro in der gleichen Datei einen zweiten Prozess anlegen und dazu das Set an Tabellenblättern kopieren um die Bezüge untereinander zu erhalten. Problem: während des Kopiervorgangs erscheint die Fehlermeldung zum Namenskonflikt. Ausschalten wäre sinnlos, da ich im neuen Set wieder Namen brauche um gewünschte Zeilen/Spalten ansprechen zu können. Ich mag aber auch nicht gefühlte 150 Namen jedes Mal von Hand umbenennen, zumal das Makro die neuen Namen anschließend braucht um auf die Bereiche zuzugreifen.
Daher meine Frage: Gibt es einen Code mit dem das Makro bei Auftreten eines Namenskonfliktes automatisch an den bestehenden Namen ein Suffix für den neuen Namen anhängt?
Vielen Dank für eure Hilfe!
mayblue

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Umbenennung Namen bei Namenskonflikt
08.06.2012 21:29:39
fcs
Hallo mayblue,
ich kenne keine Möglichkeit, den Namens-Konflikt-Dialog so zu steuern, dass ein neuer Name automatisch zugewiesen wird.
Du kannst das Problem aber umgehen, wenn für die Namen in den relevanten Tabellenblättern als Bereich das jeweilige Tabellenblatt gewählt wird.
Userbild
Leider kann man das nicht nachträglich ändern.
Man muss die Namen neu definieren und auch alle Formeln, die die Namen verwenden anpassen. Zum schluss müssen dann noch alle nicht mehr verwendeten Namen mit Bereich "Arbeitsmappe" gelöscht werden. Von Hand kaum zu bewältigen.
Ich hab deshalb ein Makro geschrieben, das dies bewältigt.
In der hochgeladenen Datei ist ein Beispiel, wie die Namen und Formeln nach Ausführung des Makros "Namen_Neu_festlegen" aussehen. Werden die Blätter für den Prozess kopiert, dann sind die Namen der Bereiche identisch, sie unterscheiden sich nur duch den vorangestellten Blattnamen.
https://www.herber.de/bbs/user/80484.xls
Die Datei hab ich mit Excel2010 erstellt und dann im 2003er Format gespeichert. Ich das Makro tut es auch im alten Format.
Wenn du jetzt Makros erstellst, dann muss du beim Verweis auf Bereiche mit Namen auch das Tabellenblatt mit angeben. Beispiel siehe unten.
Gruß
Franz

'Beispiel für das Arbeiten mit gleichen Namen in mehreren Tabellenblättern
Option Explicit
Private wks1 As Worksheet, wks2 As Worksheet
Sub Prozess_Nr01()
Set wks1 = Worksheets("P 01 ABX")
Set wks2 = Worksheets("P 01 XYZ")
Call ActionMakro
End Sub
Sub Prozess_Nr02()
Set wks1 = Worksheets("P 02 ABX")
Set wks2 = Worksheets("P 02 XYZ")
Call ActionMakro
End Sub
Private Sub ActionMakro()
Dim Bereich1 As Range, Bereich2 As Range
Dim dblSumme As Double
Set Bereich1 = wks1.Range("NameTest1")
Set Bereich2 = wks2.Range("NameTest2")
With Application.WorksheetFunction
dblSumme = .Sum(Bereich1) + .Sum(Bereich2)
End With
'oder
With Application.WorksheetFunction
dblSumme = .Sum(wks1.Range("NameTest1")) + .Sum(wks2.Range("NameTest2"))
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige