Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Namensmanager per VBA mit variablen Namen versorgen

Namensmanager per VBA mit variablen Namen versorgen
23.01.2020 12:13:24
Thomas
Hallo,
ich habe in einer Matrix (E3:H10) Werte stehen, für die ich per VBA einen Namen erzeugen will. _ Die Matrix hat in Spalte D eine Zeilenbezeichnung und in Zeile 2 eine Spaltenbezeichnung. Der gewünschte Name der Zelle (x,y) soll sich aus der zusammengesetzten Zeilen- und Spaltenbezeichnung ergeben. Dafür habe ich folgendes Coding erstellt:

Sub Namen_vergeben()
Dim oname As Object
Dim lf_This_Zeile As Integer
Dim lf_This_Spalte As Integer
Dim lf_Letzte_Zeile As Integer
Dim lf_Letzte_Spalte As Integer
Dim lf_Name As String
Dim lf_result As String
Sheets("OE").Select
For lf_This_Zeile = 3 To 10
For lf_This_Spalte = 5_OE 8
' Ermittle Name aus Zeilenbezeichnung und Spaltenbezeichnung
lf_Name = Cells(lf_This_Zeile, 4).Value & "_" & Cells(2, lf_This_Spalte).Value
' falls es den Namen bereits gibt, löschen
For Each oname In ActiveWorkbook.Names
If oname.Name = lf_Name Then
ActiveWorkbook.Names(oname.Name).Delete
Exit For
End If
Next oname
' Zellbezug
lf_result = "='OE'!$" & Chr(64 + lf_This_Spalte) & "$" & lf_This_Zeile
' Namen vergeben
ActiveWorkbook.Names.Add Name:=lf_Name, RefersTo:=lf_result
ActiveWorkbook.Names(lf_Name).Comment = ""
Next lf_This_Spalte
Next lf_This_Zeile
End Sub

Nach Ausführen des Makros werden leere Zeilen in dem Feld zum Aufruf der Namen angezeigt. Im Namensmanager finden sich die korrekten Namen, allerdings mit seltsamen Werten und Bezügen. Die Beispieldatei kann hier abgerufen werden:
https://www.herber.de/bbs/user/134638.xlsm
Danke für jeden Tipp!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Namensmanager per VBA mit variablen Namen versorgen
23.01.2020 12:21:26
Rudi
Hallo,
Zellen kannst du Namen einfach zuweisen.
Sub Namen_vergeben()
Dim lf_This_Zeile As Integer
Dim lf_This_Spalte As Integer
Dim lf_Name As String
With Sheets("OE")
For lf_This_Zeile = 3 To 10
For lf_This_Spalte = 5 To 8
' Ermittle Name aus Zeilenbezeichnung und Spaltenbezeichnung
lf_Name = .Cells(lf_This_Zeile, 4).Value & "_" & .Cells(2, lf_This_Spalte).Value
.Cells(lf_This_Zeile, lf_This_Spalte).Name = lf_Name
Next lf_This_Spalte
Next lf_This_Zeile
End With
End Sub

Gruß
Rudi
Anzeige
AW: Namensmanager per VBA mit variablen Namen versorgen
23.01.2020 12:40:16
Thomas
Hallo Rudi,
danke für die prompte Antwort. Es funktioniert!
Gruß Thomas
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Namensmanager per VBA effizient nutzen


Schritt-für-Schritt-Anleitung

Um den Excel VBA Namensmanager mit variablen Namen zu versorgen, kannst Du das folgende Makro verwenden. Dieses Beispiel zeigt, wie Du Namen für Zellen in einer Matrix (z.B. E3:H10) erstellen kannst, wobei die Namen aus Zeilen- und Spaltenbezeichnungen zusammengesetzt werden.

Sub Namen_vergeben()
    Dim lf_This_Zeile As Integer
    Dim lf_This_Spalte As Integer
    Dim lf_Name As String
    With Sheets("OE")
        For lf_This_Zeile = 3 To 10
            For lf_This_Spalte = 5 To 8
                ' Ermittle Name aus Zeilenbezeichnung und Spaltenbezeichnung
                lf_Name = .Cells(lf_This_Zeile, 4).Value & "_" & .Cells(2, lf_This_Spalte).Value
                ' Zellenname zuweisen
                .Cells(lf_This_Zeile, lf_This_Spalte).Name = lf_Name
            Next lf_This_Spalte
        Next lf_This_Zeile
    End With
End Sub

Führe dieses Makro in deiner Excel-Datei aus, um die gewünschten Namen im Namensmanager zu sehen.


Häufige Fehler und Lösungen

  1. Leere Zeilen im Namensmanager
    Wenn Du nach dem Ausführen des Makros leere Zeilen im Namensmanager siehst, könnte das daran liegen, dass ein Name bereits existiert und nicht korrekt überschrieben wurde. Überprüfe, ob Du die Zeilen vor der Erstellung der neuen Namen löschst oder überschreibst.

  2. Seltsame Werte und Bezüge
    Wenn die Namen im Namensmanager mit unerwarteten Werten angezeigt werden, stelle sicher, dass die Zellbezüge korrekt sind. Überprüfe die Logik in Deinem VBA-Code und stelle sicher, dass Du die richtigen Zellen referenzierst.


Alternative Methoden

Eine alternative Möglichkeit, um Namen in Excel zu vergeben, ist die Verwendung der Excel-Benutzeroberfläche:

  1. Markiere die Zelle, die du benennen möchtest.
  2. Gehe zum Namensfeld links neben der Formelleiste.
  3. Gib den gewünschten Namen ein und drücke Enter.

Diese Methode ist zwar einfacher, aber nicht so effizient, wenn Du eine große Anzahl an Namen erstellen musst.


Praktische Beispiele

Hier ist ein Beispiel, wie Du den Namensmanager in Excel VBA nutzen kannst:

  • Angenommen, Du hast folgende Zeilen- und Spaltenbezeichnungen:
    • Zeilenbezeichnung in D3:D10
    • Spaltenbezeichnung in E2:H2

Das Makro oben wird für jede Zelle in der Matrix einen Namen erzeugen, der aus der Zeilen- und Spaltenbezeichnung zusammengesetzt ist, z.B. Bezeichnung1_Spaltenname1.


Tipps für Profis

  • Namen überarbeiten: Überprüfe regelmäßig die Namen im Namensmanager, um sicherzustellen, dass keine überflüssigen oder doppelten Namen vorhanden sind.
  • Verwendung von Varianten: In VBA kannst Du Variant statt Integer verwenden, um flexibler mit unterschiedlichen Datentypen umzugehen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Dein Makro, um unerwartete Fehler zu vermeiden und die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich einen Namen im Namensmanager löschen?
Um einen Namen zu löschen, kannst Du im VBA-Editor den Befehl ActiveWorkbook.Names("NameDesNamens").Delete verwenden.

2. Was ist der Unterschied zwischen einem Bereichsnamen und einem Namen im Namensmanager?
Ein Bereichsname ist ein spezifischer Name, der einem Zellbereich zugeordnet ist, während der Namensmanager alle definierten Namen in der Arbeitsmappe verwaltet, egal ob sie Zellen oder Formeln referenzieren.

Mit diesen Anleitungen kannst Du den Excel VBA Namensmanager optimal nutzen und Deine Daten effektiver verwalten.

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