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
Left(Activecell.Address(1,0),INSTR(Activecell.Address(1,0),"$")-1)
GreetZ Renee
Select Case column.Spaltenname '(--> von mir gesuchte Anweisung)
Case "SpalteDatum"
Case "SpalteVisum"
End select
Gruss
Isha
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
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
Um den Spaltennamen in VBA abzufragen, befolge die folgenden Schritte:
Öffne die Excel-Datei mit den benannten Spalten.
Klicke mit der rechten Maustaste auf den Tabellenblatt-Reiter und wähle "Code anzeigen".
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
Schließe das VBA-Fenster und gehe zurück zu deiner Excel-Tabelle.
Doppelklicke in eine Zelle innerhalb der benannten Spalte, um den Namen der Spalte abzurufen.
Fehler: Der Code gibt nicht den erwarteten Spaltennamen zurück.
Fehler: Es wird eine falsche oder leere Nachricht angezeigt.
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.
Angenommen, du hast die Spalten wie folgt benannt:
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.
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen