Lokale Namen in Excel per VBA definieren
Schritt-für-Schritt-Anleitung
Um lokale Namen in Excel per VBA zu definieren, kannst du den folgenden Code verwenden. Dieser sucht alle Zellen mit einer gelben Hintergrundfarbe und erstellt basierend auf deren Inhalt und dem Tabellennamen einen lokalen Namen.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Klicke auf
Einfügen
> Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub MakeNames()
Dim r As Range
On Error GoTo hell
'Alle Zellen
For Each r In ActiveSheet.UsedRange
'prüfe auf Gelb
If r.Interior.ColorIndex = 6 Then
'erstelle Namen
ActiveWorkbook.Names.Add Name:=r.Value, RefersToR1C1:="=" & ActiveSheet.Name & "!" & r.Address(1, 1, xlR1C1)
End If
Next r
GoTo heaven
hell:
MsgBox ("Abbruch, wahrscheinlich ungültiger Name? (Leerzeichen oder so?)")
heaven:
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro
MakeNames
aus, um die lokalen Namen zu definieren.
Häufige Fehler und Lösungen
-
Ungültiger Name: Wenn du die Fehlermeldung "wahrscheinlich ungültiger Name?" erhältst, überprüfe, ob der Zelleninhalt Leerzeichen oder andere ungültige Zeichen enthält. Excel erlaubt keine Namen, die mit einem Zahlenzeichen (#) beginnen oder Leerzeichen enthalten.
-
Falsche Farbe: Achte darauf, dass die Zellen tatsächlich den Hintergrundfarbe-Index 6 (gelb) haben. Ansonsten findest du keine Zellen und keine Namen werden definiert.
Alternative Methoden
Eine alternative Methode, um Namen in Excel zu definieren, könnte die Verwendung der RGB
-Funktion sein. Hier ist ein Beispiel:
Sub MakeNames()
Dim r As Range
On Error GoTo hell
'Alle Zellen
For Each r In ActiveSheet.UsedRange
'prüfe auf Gelb
If r.Interior.Color = RGB(255, 255, 0) Then
'erstelle Namen
r.Name = ActiveSheet.Name & "!" & r.Value
End If
Next r
GoTo heaven
hell:
MsgBox ("Abbruch, wahrscheinlich ungültiger Name? (Leerzeichen oder so?)")
heaven:
End Sub
Diese Methode ist direkter, da der Name direkt der Zelle zugewiesen wird, anstatt einen Bereichsnamen zu definieren.
Praktische Beispiele
Angenommen, du hast eine Tabelle mit den folgenden gelben Zellen:
A |
B |
Name |
Vorname |
--- |
--- |
Max |
Mustermann |
Lisa |
Müller |
Nach dem Ausführen des VBA-Codes werden die folgenden lokalen Namen erstellt:
Tabelle1!Max
Tabelle1!Mustermann
Tabelle1!Lisa
Tabelle1!Müller
Diese Namen kannst du nun in Formeln verwenden, um auf die entsprechenden Zellen zuzugreifen.
Tipps für Profis
-
Nutze Option Explicit
am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
-
Überlege, die Farbauswahl dynamisch zu gestalten, indem du die Farbe als Parameter übergibst. So kannst du den Code vielseitiger verwenden.
-
Speichere regelmäßig deine Arbeitsmappe, um Datenverlust im Falle eines Fehlers zu vermeiden.
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen Bereichsnamen und lokalen Namen in Excel?
Bereichsnamen sind in der gesamten Arbeitsmappe sichtbar, während lokale Namen nur in dem Arbeitsblatt, in dem sie definiert wurden, verwendet werden können.
2. Kann ich lokale Namen auch ohne VBA definieren?
Ja, du kannst lokale Namen auch manuell über das Menü Formeln
> Namensmanager
definieren, jedoch ist das weniger effizient bei großen Datensätzen.
3. Was passiert, wenn ein Name bereits existiert?
Wenn ein Name bereits existiert, wird ein Fehler angezeigt. Du solltest sicherstellen, dass die Namen eindeutig sind, bevor du das Skript ausführst.