Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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

Bereichnamen verschieben

Bereichnamen verschieben
02.03.2021 12:15:52
Herr
Hallo zusammen,
ich habe für die bessere und übersichtliche Berechnung in Excel Zellennamen vergeben. Sprich statt "A5" bspw. "Schwerpunkt_X" usw. Jetzt möchte ich die Namen um eine Zeile nach oben verschieben (also bspw. in "A4"), die Formel und Berechnung soll allerdings in der alten Zelle "A5" enthalten bleiben. Da dies auf mehrere Zellen und Worksheets zutrifft, möchte ich das gerne automatisieren. Mein Vorgehen ist, dass ich den Name aus den alten Zellen auslese und über einen Dreieckstausch an die neue Zelle übergebe. Leider bekomme ich immer den Fehler "Falsche Anzahl an Argumenten".
anbei mein Code:
Sub NamenVerschieben()
Dim nme As Object
Dim nme2 As Object
Dim nme3 As Object
Dim i As Integer
Dim y As Integer
y = 28
With ActiveSheet
For i = 4 To 27
Set nme = Cells(y, i)
Set nme3 = Cells(y - 1, i)
nme2.Name = nme.Name
nme.Delete
nme3.Name = nme2.Name
Next
End With
End Sub
kann mir jemand weiterhelfen?
Danke im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Bereichnamen verschieben
02.03.2021 13:00:53
ChrisL
Hi
Sachen gibt's. Das Vorgehen scheint mir ziemlich ungewöhnlich.
Vielleicht so:
Sub t()
Dim i As Integer
Dim y As Long
Dim n As Name
Dim rng As Range
y = 28
With ActiveSheet
For i = 4 To 27
For Each n In ThisWorkbook.Names
Set rng = Range(Replace(n.RefersTo, "=", ""))
If Not Intersect(.Cells(y, i), rng) Is Nothing Then
n.RefersTo = "=" & rng.Offset(-1, 0).Address
Exit For
End If
Next n
Next i
End With
End Sub

cu
Chris

AW: Bereichnamen verschieben
02.03.2021 13:08:18
Herr
Danke für die schnelle Antwort!
Leider bekomme ich den Fehler 1004:" Die Methode Intersect für das Objekt _Global ist fehlgeschlagen".
Weißt du was ich noch abändern kann?

Anzeige
AW: Bereichnamen verschieben
02.03.2021 13:32:05
ChrisL
Hi
Nicht die feine englische Art, aber Namen können sich auf alles Mögliche beziehen, darum die Fehler einfach mal überspringen.
Sub t()
Dim i As Integer
Dim y As Long
Dim n As Name
Dim rng As Range
y = 28
On Error Resume Next
With ActiveSheet
For i = 4 To 27
For Each n In ThisWorkbook.Names
Set rng = .Range(Replace(n.RefersTo, "=", ""))
If Not Intersect(.Cells(y, i), rng) Is Nothing Then
n.RefersTo = "=" & rng.Offset(-1, 0).Address
Exit For
End If
Next n
Next i
End With
End Sub

cu
Chris

AW: Bereichnamen verschieben
02.03.2021 13:35:23
Herr
Danke! ABer leider ohne Ergebnis. Namen haben sich leider nicht verschoben und es ist alles beim alten :/

Anzeige
AW: Bereichnamen verschieben
02.03.2021 13:43:12
Rudi
Hallo,
versuch mal:
Sub aaa()
Dim n As Name
For Each n In Names
n.RefersToRange.Offset(-1).Name = n.Name
Next
End Sub

Gruß
Rudi

AW: Bereichnamen verschieben
02.03.2021 14:29:42
Herr
Hallo Rudi,
das Makro verschiebt schon mal die Namen um eine Zeile nach oben. Allerdings in allen Worksheets in meiner Arbeitsmappe.
Auch mit der Anpassung des Worksheets mit "With Sheets("Berechnung_Schwerpunkte")" verschiebt das Makro immer noch ALLE Namen auf allen Blättern :/
Sub aaa()
Dim n As Name
With Sheets("Berechnung_Schwerpunkte")
For Each n In Names
n.RefersToRange.Offset(-1).Name = n.Name
Next
End With
End Sub


Anzeige
AW: Bereichnamen verschieben
02.03.2021 15:07:15
ChrisL
Hi
Wahrscheinlich wurden die Namen global (für die ganze Arbeitsmappe) definiert, beziehen sich aber auf ein bestimmtes Blatt.
Vielleicht kennt Rudi noch einen direkteren Weg, aber hiermit könnte es gehen:
Sub aaa()
Dim y As Long
Dim n As Name
y = 28
With ActiveSheet
For Each n In Names
If n.RefersToRange.Parent.Name = .Name Then
If Not Intersect(n.RefersToRange, .Range("D" & y & ":AA" & y)) Is Nothing Then _
n.RefersToRange.Offset(-1).Name = n.Name
End If
Next n
End With
End Sub
cu
Chris

AW: Bereichnamen verschieben
02.03.2021 15:27:35
Herr
Perfekt! So hat es geklappt :)
Vielen Dank Euch beiden!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige