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

Spaltenbezeichnung aus ActiveCell lesen

Forumthread: Spaltenbezeichnung aus ActiveCell lesen

Spaltenbezeichnung aus ActiveCell lesen
1.Merlin
Hallo zusammen,
gibt es eine einfache Methode die Spaltenbezeichnng aus ActiveCell zu bestimmen.
Z.B. ich möchte aus B3 den String "B" bekommen, usw. Oder muss ich mir ne eigene Sub dafür schreiben...?
Anzeige
Left(ActiveCell.AddressLocal(0, 0), 1) ...
26.10.2009 11:00:21
Matthias
Hallo
fürs aktuelle Beispiel B3
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Left(ActiveCell.AddressLocal(0, 0), 1)
End Sub
Für Zelle wie AB3 bekommst Du das bei (Excel Gut / VBA Gut) sicher dann selber hin.
Gruß Matthias (kaum Excel/VBA Kenntnisse)
Anzeige
AW: Left(ActiveCell.AddressLocal(0, 0), 1) ...
26.10.2009 11:09:15
Luschi
Hallo Matthias,
wenn man es so macht, funktioniert es auch ab Spalte 'AA':
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     MsgBox Split(ActiveCell.Address, "$", -1, vbTextCompare)(1)
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Left(ActiveCell.AddressLocal(0, 0), 1) ...
26.10.2009 11:18:20
Matthias
Hallo Luschi
Ok, das ist besser und kürzer. Habs gespeichert :o) Danke für Dein Beispiel.
Ich wollte allerdings das Merlin das z.B. für AB3 selbst löst.
Ich hatte es für mich übrigens so umgesetzt:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column 
Gruß Matthias
Anzeige
AW: Left(ActiveCell.AddressLocal(0, 0), 1) ...
26.10.2009 11:44:17
1.Merlin
Ich hatte das Problem gelöst...
Private Function GetCoulumn(ByVal ActiveCell As String, ByRef Column As String) As Boolean
Try
Dim MyColumn() As String = Nothing
MyColumn = Split(ActiveCell, "$")
If MyColumn.Length 
Ich dachte nur es geht auch ohne Split, bzw. direkt ....
Anzeige
was ist das denn ...
26.10.2009 13:41:22
Rudi
... für eine Sprache? VBA ist es nicht.
Gruß
Rudi
AW: was ist das denn ...
26.10.2009 13:49:26
1.Merlin
Das ist .Net. Ich programmiere und steuere per VB.net eine Excelarbeitsmappe....
AW: ohne Split und IF
27.10.2009 00:19:32
Daniel
gehts so:
Dim Spalte as string
Spalte = Activecell.Entirerow.address(0,0)
Spalte = left(Spalte, int(len(spalte)/2))
bzw als Einzeiler
= left(Activecell.Entirerow.address(0,0), int(len(Activecell.Entirerow.address(0,0))/2))
Gruß, Daniel
Anzeige
AW: ohne Split und IF
27.10.2009 14:41:51
Luschi
Hallo Daniel,
Deine Lösung gilt für die Zeilen, da würde aber schon ausreichen:
ActiveCell.Row
für den Spaltenbuchstaben geht es so:
Left(ActiveCell.EntireColumn.Address(0, 0), Int(Len(ActiveCell.EntireColumn.Address(0, 0)) / 2))
Gruß von Luschi
aus klein-Paris
=LINKS(ADRESSE(ZELLE("Zeile");ZELLE("Spalte");4);
26.10.2009 11:15:11
Bernd
Hallo,
oder als Formel
=LINKS(ADRESSE(ZELLE("Zeile");ZELLE("Spalte");4);1)
Gruß
Bernd
Anzeige
Nachtrag...Sorry
26.10.2009 11:25:55
Bernd
..das muss sein....
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub

AW: =LINKS(ADRESSE(ZELLE("Zeile");ZELLE("Spalte");4);
27.10.2009 14:58:01
Luschi
Hallo Bernd,
Deine Formel gilt nur bis Spalte Z; für alle möglichen Spalten gilt:
=WECHSELN(ADRESSE(ZELLE("Zeile");ZELLE("Spalte");4);ZELLE("Zeile");)
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Spaltenbezeichnung aus ActiveCell lesen


Schritt-für-Schritt-Anleitung

Um die Spaltenbezeichnung aus der ActiveCell in Excel VBA zu lesen, kannst Du folgende Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       MsgBox Left(ActiveCell.Address, 1)
    End Sub

    Dieser Code zeigt die Spaltenbezeichnung der ActiveCell an, wenn Du die Auswahl änderst.

  4. Testen:

    • Wechsle in dein Excel-Dokument und klicke auf verschiedene Zellen, um die Spaltenbezeichnung zu sehen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt erwartet"

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblattmodul platziert ist.
  • Fehler: "MsgBox gibt nicht die erwartete Spaltenbezeichnung zurück"

    • Lösung: Verwende ActiveCell.Column in Kombination mit Cells:
      MsgBox Cells(1, ActiveCell.Column).Address(0, 0)

Alternative Methoden

Wenn Du eine andere Methode bevorzugst, um die Spaltenbezeichnung zu erhalten, kannst Du auch die Funktion Split verwenden:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox Split(ActiveCell.Address, "$")(1)
End Sub

Diese Methode funktioniert auch für Spaltenbezeichnungen wie AB.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die ActiveCell in VBA verwenden kannst:

  1. Einfaches Beispiel für die Verwendung von ActiveCell:

    Sub GetActiveCellColumn()
       Dim spalte As String
       spalte = Left(ActiveCell.Address, 1)
       MsgBox "Die Spalte ist: " & spalte
    End Sub
  2. Komplexeres Beispiel mit mehreren Spalten:

    Sub GetActiveCellFullAddress()
       MsgBox "Die Adresse der aktiven Zelle ist: " & ActiveCell.Address
    End Sub

Tipps für Profis

  • Verwende ActiveCell.Column: Um die Spaltennummer direkt zu erhalten, kannst Du ActiveCell.Column verwenden. Dies kann hilfreich sein, wenn Du mit numerischen Indizes arbeiten möchtest.

  • Vermeide Select und Activate: Wenn möglich, arbeite direkt mit den Zellen, um die Leistung zu steigern. Beispiel:

    Dim spalte As String
    spalte = Cells(1, ActiveCell.Column).Address(0, 0)

FAQ: Häufige Fragen

1. Wie kann ich die Spalte für eine bestimmte Zelle erhalten? Du kannst die ActiveCell durch die gewünschte Zelle ersetzen, z.B. Range("B3").Column.

2. Funktioniert das in allen Excel-Versionen? Ja, die oben genannten Methoden sind in den meisten modernen Excel-Versionen (Excel 2010 und später) anwendbar.

3. Was ist der Unterschied zwischen ActiveCell.Address und ActiveCell.AddressLocal? ActiveCell.Address gibt die Adresse in der internationalen Notation zurück, während ActiveCell.AddressLocal die Adresse in der lokalen Sprache des Excel-Systems zurückgibt.

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