Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spaltenname in VBA abfragen

Spaltenname in VBA abfragen
07.12.2007 15:17:51
Isha
Hallo
Ich habe in der Exceltabelle den Spalten einen Namen zugewiesen (Spalte markiert und oben links ein Name eingegeben.
Nun möchte ich im VBA den Spaltenname abfragen in der sich die aktive Zelle befindet.
Hat jemand ein Tipp?
Vielen Dank.
Isha

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenname in VBA abfragen
07.12.2007 15:45:00
Renee
Mazwara Isha,
Ich seh den Zusammenhang zwischen aktiver Zelle und dem vergebenen Namen (einer oder mehrerer Spalten) nicht. Kannst Du das etwas genauer ausführen ?
Falls Du die Spaltenbezeichnung der aktiven Zelle suchst:

Left(Activecell.Address(1,0),INSTR(Activecell.Address(1,0),"$")-1)


GreetZ Renee

Anzeige
AW: Spaltenname in VBA abfragen
07.12.2007 15:57:00
Isha
Nein, ich suche den Spaltenname, den ich links oben im Namenfeld für die ganze Spalte eingegeben habe.
Ich habe jeder Spalte einen Namen vergeben. Die Namen sind fix, auch wenn ich im nachhinein Spalten einfüge oder lösche. So muss ich nicht bei jeder Änderung alle meine Makros umschreiben.
Nun muss ich wissen in welcher Spalte der Benutzer eine Eingabe gemacht hat. Und zwar will ich den von mir definierten Name für die Spalte im VBA abfragen.

Select Case column.Spaltenname '(--> von mir gesuchte Anweisung)
Case "SpalteDatum"
Case "SpalteVisum"
End select


Gruss
Isha

Anzeige
AW: Spaltenname in VBA abfragen
07.12.2007 16:11:00
Peter
Hallo Isha,
kopier das beigefügte Makro in das Tabellenblatt, in dem du den Spalten Namen gegeben hast.
Linksklick auf den Tabellenblattreiter
Code anzeigen mit rechts anklicken
In das sich öffnende Fenster das makro kopieren
Mit Schließen-Kreuz zurückgehen.
Nun mach einmal einen Doppelklick in eine beliebige Zelle deiner benamten Spalten.


Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim nm As Name
   For Each nm In ActiveWorkbook.Names
      If Not Application.Intersect(ActiveCell, _
         Range(nm.RefersToRange.Address)) Is Nothing Then
         MsgBox "  die selektierte Zelle gehört, bzw." & Chr(10) & _
            "die selektierten Zellen gehören zu" & Chr(10) & Chr(10) & _
            Space(18) & nm.Name, _
            64, "   Hinweis für " & Application.UserName
         Exit Sub
      End If
   Next nm
   MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich", _
      48, "   Hinweis für " & Application.UserName
End Sub 


Gruß Peter

Anzeige
AW: Spaltenname in VBA abfragen
07.12.2007 17:17:00
Isha
Vielen Dank :)
Genau das habe ich gesucht.
Gruss
Isha

AW: Spaltenname in VBA abfragen
10.12.2007 08:53:00
Isha
Leider funktioniert der von Herr Feustel angegebene Code nicht immer.
Ich habe den Code in eine Tabelle eingefügt, und es wird ein anderer Name genommen, nicht der Spaltenname.
Wie kann ich den Spaltenname sicher und eindeutig abfragen?
Gruss
ISha

Anzeige
AW: Spaltenname in VBA abfragen
10.12.2007 14:59:58
Hajo_Zi
Hallo usha,
vielleicht hilft Dir dies weiter?

Sub Name_ermitteln()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
MsgBox nm.Name
Exit Sub
End If
Next
MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub


Von Martin Beck

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spaltennamen in VBA abfragen


Schritt-für-Schritt-Anleitung

Um den Spaltennamen in VBA abzufragen, befolge die folgenden Schritte:

  1. Öffne die Excel-Datei mit den benannten Spalten.

  2. Klicke mit der rechten Maustaste auf den Tabellenblatt-Reiter und wähle "Code anzeigen".

  3. Füge den folgenden VBA-Code in das Editorfenster ein:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim nm As Name
        For Each nm In ActiveWorkbook.Names
            If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
                MsgBox "Die selektierte Zelle gehört zu: " & nm.Name
                Exit Sub
            End If
        Next
        MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
    End Sub
  4. Schließe das VBA-Fenster und gehe zurück zu deiner Excel-Tabelle.

  5. Doppelklicke in eine Zelle innerhalb der benannten Spalte, um den Namen der Spalte abzurufen.


Häufige Fehler und Lösungen

  • Fehler: Der Code gibt nicht den erwarteten Spaltennamen zurück.

    • Lösung: Stelle sicher, dass die Namen der Spalten korrekt in Excel definiert sind und dass der VBA-Code im richtigen Arbeitsblatt eingefügt wurde.
  • Fehler: Es wird eine falsche oder leere Nachricht angezeigt.

    • Lösung: Überprüfe, ob die aktive Zelle wirklich in einem benannten Bereich liegt. Wenn nicht, wird die Standardnachricht angezeigt.

Alternative Methoden

Eine andere Möglichkeit, den Spaltennamen abzufragen, ist die Verwendung eines separaten Makros. Hier ist ein Beispiel:

Sub Name_ermitteln()
    Dim nm As Name
    For Each nm In ActiveWorkbook.Names
        If Not Application.Intersect(ActiveCell, Range(nm.RefersToRange.Address)) Is Nothing Then
            MsgBox nm.Name
            Exit Sub
        End If
    Next
    MsgBox "Aktive Zelle gehört zu keinem mit Namen versehenen Bereich"
End Sub

Füge diesen Code ebenfalls in das VBA-Editorfenster ein und führe das Makro aus, um den Spaltennamen zu ermitteln.


Praktische Beispiele

Angenommen, du hast die Spalten wie folgt benannt:

  • Spalte A: "SpalteDatum"
  • Spalte B: "SpalteVisum"

Wenn du nun in Spalte A eine Zelle doppelklickst, wird dir eine Nachricht angezeigt, die bestätigt, dass die aktive Zelle zur "SpalteDatum" gehört.


Tipps für Profis

  • Verwende aussagekräftige Namen für deine Spalten, um die Identifizierung zu erleichtern.
  • Erstelle eine Fehlerbehandlung im VBA-Code, um unerwartete Situationen abzufangen.
  • Dokumentiere deine Makros gut, damit du und andere Benutzer sie leicht verstehen und anpassen können.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der VBA-Code immer funktioniert?
Überprüfe, ob die Namen der Spalten korrekt und eindeutig vergeben sind. Es ist auch wichtig, sicherzustellen, dass der Code im entsprechenden Arbeitsblatt eingefügt ist.

2. Kann ich mehrere Makros gleichzeitig verwenden?
Ja, du kannst mehrere Makros in verschiedenen Modulen anlegen. Achte jedoch darauf, dass sie nicht in Konflikt miteinander stehen.

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