Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per vba den zellenbezug im namensmanager auf das a

Forumthread: per vba den zellenbezug im namensmanager auf das a

per vba den zellenbezug im namensmanager auf das a
14.05.2019 16:26:48
ralf
Hallo zusammen
wie kann per vba den bestehenden zellenbezug im namensmanager auf das aktuell
verwendete worksheet ändern ?
beim kopieren der tabelle (mehrfach) sollte per button die neu kopierte
tabelle als diese aktiviert werden, welche neu im namensmanager als quelle verwendet wird.
kann mit jemand helfen ?
gruss
ralf
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per vba den zellenbezug im namensmanager auf das a
14.05.2019 22:45:32
Piet
Hallo
probier bitte mal die unteren beiden Codes aus. Der erste listet dir den Namens Manager auf. Dabei erlebt man auch schon mal nette Überraschungen - MS Leichen im Excel Keller! - Tote Namen weg. Referenz Fehler, die im Manager Dialog NICHT aufgelistet werden!
Das zweite Makro kann die von Hand geaenderte Referenz umbenennen. Vor dem "=" Zeichen muss unbedingt ein ' Zeichen stehen, am besten mit Space, so: " ' ",sonst denkt Excel das sei eine Formel und versucht sie zu übernehmen! Im Befehl Trim(Mid(...)) wird das Zeichen wieder abgeschnitten, sonst klappt die Zuweisung nicht. Wnn es nicht klappt den Wert Mid 3, 500) auf 4, 500) erhöhen.
Würde mich freuen wenn es so klappt.
mfg Piet
Option Explicit
Dim NameTxt, NameRef, i As Integer
Const Liste = "Tabelle1"
'Makro zum Namen auflisten
Sub Namensliste_erstellen()
MsgBox ThisWorkbook.Names.Count
With Worksheets(Liste)
For i = 1 To ThisWorkbook.Names.Count
.Cells(i + 1, 1) = i
.Cells(i + 1, 2) = ThisWorkbook.Names(i).Name
.Cells(i + 1, 3) = " ' " & ThisWorkbook.Names(i).RefersTo
Next i
End With
End Sub
'Makro zum Refrnz umbenennen
Sub Namen_Referenz_umbennnen()
On Error GoTo Fehler
With Worksheets(Liste)
For i = 1 To ThisWorkbook.Names.Count
'vorgestlltes ' Semikolon und Space abschneiden
NameTxt = .Cells(i + 1, 2)
NameRef = Trim(Mid(.Cells(i + 1, 3), 3, 500))
ThisWorkbook.Names(i).RefersTo = NameRef
Next i
End With
Exit Sub
Fehler: MsgBox "Fehler bei Namen: " & NameTxt: Resume Next
End Sub

Anzeige
AW: per vba den zellenbezug im namensmanager auf das a
16.05.2019 17:59:23
ralf
hallo piet
meine vba-kenntnisse halten sich sehr in grenzen ...
deine vorschläge habe ich leider nur zur hälfte verstanden ...
habe aber dank der hilfe eines bekannten ein wie mir scheint
ziemlich schlanke lösung gefunden
sieht nun so aus
Sub Rapportbearbeitung()
Dim x As String
x = ActiveSheet.Name
Worksheets(x).Select
'alte Quelle löschen und neu zuweisen
ActiveWorkbook.Names("Name der Quelle").Delete
ActiveWorkbook.Names.Add _
Name:="Name der Quelle", _
RefersTo:="='" & (x) & "'!RxyzC1xyz" (xyz durch Zeile - Spaltennummer ersetzen)
End Sub
Danke trotzdem für die Hilfe
Ralf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellenbezug im Namensmanager per VBA ändern


Schritt-für-Schritt-Anleitung

Um den Zellenbezug im Namensmanager per VBA zu ändern, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub Rapportbearbeitung()
       Dim x As String
       x = ActiveSheet.Name
       Worksheets(x).Select
       ' Alte Quelle löschen und neu zuweisen
       ActiveWorkbook.Names("Name der Quelle").Delete
       ActiveWorkbook.Names.Add _
           Name:="Name der Quelle", _
           RefersTo:="='" & (x) & "'!RxyzC1xyz" ' (xyz durch Zeile - Spaltennummer ersetzen)
    End Sub
  4. Ersetze RxyzC1xyz mit der entsprechenden Zeilen- und Spaltennummer, die Du verwenden möchtest.

  5. Schließe den VBA-Editor und führe das Makro aus, um den Zellenbezug zu aktualisieren.


Häufige Fehler und Lösungen

  • Fehler: „Referenz Fehler“

    • Lösung: Stelle sicher, dass der Name der Quelle korrekt ist und dass keine Leerzeichen oder ungültigen Zeichen vorhanden sind.
  • Fehler: „Makro kann nicht gefunden werden“

    • Lösung: Überprüfe, ob das Makro im richtigen Modul gespeichert ist und ob Du es in der richtigen Arbeitsmappe ausführst.
  • Fehler: „Tote Namen“ im Namensmanager

    • Lösung: Verwende das folgende Makro, um alle Namen aufzulisten und eventuelle „tote“ Namen zu entfernen:
    Sub Namensliste_erstellen()
       Dim i As Integer
       With Worksheets("Tabelle1")
           For i = 1 To ThisWorkbook.Names.Count
               .Cells(i + 1, 1) = i
               .Cells(i + 1, 2) = ThisWorkbook.Names(i).Name
               .Cells(i + 1, 3) = " ' " & ThisWorkbook.Names(i).RefersTo
           Next i
       End With
    End Sub

Alternative Methoden

Wenn Du VBA nicht verwenden möchtest, kannst Du den Zellenbezug auch manuell im Namensmanager ändern:

  1. Gehe zu "Formeln" in der Excel-Menüleiste.
  2. Klicke auf "Namensmanager".
  3. Wähle den gewünschten Namen aus und klicke auf "Bearbeiten".
  4. Ändere den Bezug und klicke auf "OK".

Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Anpassungen.


Praktische Beispiele

  1. Beispiel zum Löschen und Neuerstellen eines Namens:

    Sub Beispiel()
       ActiveWorkbook.Names("AlterName").Delete
       ActiveWorkbook.Names.Add Name:="NeuerName", RefersTo:="=Tabelle1!A1"
    End Sub
  2. Beispiel zur Umbenennung eines Namens:

    Sub Umbenennen()
       ThisWorkbook.Names("AlterName").Name = "NeuerName"
    End Sub

Diese Beispiele zeigen, wie Du mit VBA den Namensmanager effektiv verwalten kannst.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deines Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Halte Deine Makros so kurz und prägnant wie möglich, um die Lesbarkeit und Wartbarkeit zu verbessern.
  • Überprüfe Deine Namen regelmäßig im Namensmanager auf „tote“ Einträge und entferne diese, um die Übersichtlichkeit zu wahren.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine VBA-Skripte immer die aktuellen Arbeitsblätter verwenden? Um dies zu gewährleisten, verwende ActiveSheet oder spezifiziere den Arbeitsblattnamen im Code.

2. Was kann ich tun, wenn das Makro nicht funktioniert? Überprüfe den Code auf mögliche Syntaxfehler und stelle sicher, dass alle Namen korrekt geschrieben sind. Teste auch, ob das Makro in der richtigen Arbeitsmappe ausgeführt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige