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

Forumthread: VBA Adresse der aktiven Zelle ausgeben

VBA Adresse der aktiven Zelle ausgeben
16.12.2022 10:50:37
tursiops
Hallo!
Ich möchte die Adresse der aktuell ausgewählten Zelle per VBA auslesen und in eine Zelle schreiben lassen.
Der Plan ist, diese Werte für bedingte Formatierungen zu verwenden.
Gibt es einen Weg die Nummer der aktiven Zeile in der Zelle A1 und die Nummer der aktiven Spalte in Zelle A2 auszugeben?
Ich danke vorab für eure Hilfe!
Gruß Frank
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 11:02:56
Hans
Hallo Frank und Forum,
Beantwortungen dieser Fragen (ohne Anlagen und ohne Screenshots o.ä.) werden künftig vermutlich von ChatBots übernommen. Nachfolgend ein Vorgeschmack auf kommende Zeiten (Antwort von ChatGTP):
---------- schnipp --------
Ja, Sie können die Nummer der aktiven Zeile und die Nummer der aktiven Spalte in Excel mithilfe von VBA auslesen und in Zellen schreiben. Hier ist ein Beispielcode, der die Nummer der aktiven Zeile in Zelle A1 und die Nummer der aktiven Spalte in Zelle A2 schreibt:

Sub ActiveCellAddress()
' Nummer der aktiven Zeile in Zelle A1 schreiben
Range("A1").Value = ActiveCell.Row
' Nummer der aktiven Spalte in Zelle A2 schreiben
Range("A2").Value = ActiveCell.Column
End Sub
Um diesen Code auszuführen, können Sie ihn in das Visual Basic Editor (VBE) einfügen und dann auf "Ausführen" klicken. Alternativ können Sie auch ein Makro aufzeichnen, indem Sie den obigen Code in ein Makro aufnehmen und dann die Tastenkombination für das Makro verwenden, um es auszuführen.
Hinweis: Wenn Sie die aktive Zelle mit bedingter Formatierung formatieren möchten, können Sie die Nummer der aktiven Zeile und Spalte auch direkt in den Bedingungen der bedingten Formatierung verwenden, ohne sie in Zellen schreiben zu müssen. Beispielsweise könnten Sie die folgende Bedingung verwenden, um die aktive Zelle grün einzufärben, wenn sie sich in Zeile 1 befindet:

=ZEILE(AKTIVEZELLE())=1
Ich hoffe, dass diese Informationen hilfreich sind!
--------- schnapp --------
Gruß hans
Anzeige
Wow! Herber goes GTP ;-)
16.12.2022 11:27:02
Yal
das macht mich neugierig!
VG
Yal
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 11:58:01
tursiops
Hallo!
Das sind sehr interessante Ansätze. Ich werde es probieren und berichten. Zunächst vielen Dank für alle Beiträge und eure Hilfe!
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 12:36:19
tursiops
Auch hier vielen Dank für die Unterstützung!
Ich wünsche einen ruhigen vierten Advent!
Anzeige
Dann werden wir den Spass haben...
16.12.2022 17:07:57
Yal
... die nicht korrekte Vorschläge von ChatGPT zu korrigieren ;-)
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 11:07:56
Pierre
Hallo Frank,
reicht für die Spalte auch die Zahl oder soll der Buchstabe erscheinen?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngCnt As Long
lngCnt = InStr(2, Target.Address, "$") - 1
Range("A1").Value = Target.Row
'Range("A2").Value = Target.Column
Range("A2").Value = WorksheetFunction.Substitute(Left(Target.Address, Len(Target.Address) - (Len(Target.Address) - lngCnt)), "$", "")
End Sub
Die auskommentierte Zeile (Hochkomma) aktivieren, wenn die Spaltenzahl ausreicht, dafür dann die darunter mit Hochkomma inaktiv setzen. Die längere Version gibt dir den Buchstaben an.
Gruß Pierre
Anzeige
Probiere...
16.12.2022 11:26:04
Yal
Hallo,
Probiere
Debug.Print Target.Address (False, False)
Debug.Print Join( Split(Target.Address, "$"), " - ")
Debug.Print Split(Target.Address, "$")(1)
VG
Yal
ich oder der TE? (owt)
16.12.2022 11:29:15
Pierre
Beiden
16.12.2022 11:38:10
Yal
Du, der TE und jeder, der in den nächsten 10 Jahren auf diesem Beitrag stossen wird.
Es ist eine Einladung zum neugierig sein. Ohne Neugiriegkeit bewegt man sich nur innerhalb des eigenen Wissens und erweitert dieses nicht.
VG
Yal
Anzeige
I couldn't agree more
16.12.2022 12:03:58
snb
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 11:36:29
snb
Wenn du in VBA arbeitest sollte du auch VBA (replace) verwenden und keine Excel Funktionen:(application.substitute)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
cells(1) =. Target.Row
cells(2,1)= Target.Column
cells(3,1)=split(target.address,"$")(1)
End Sub

Anzeige
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 12:35:23
tursiops
Hallo nochmals!
Der Vorschlag hat super funktioniert. Alles klappt einwandfrei.
Ich habe nun eine Art Fadenkreuz in einer riesigen Eingabemaske, die die Übersichtlichkeit extrem erhöht und Fehleinträge deutlich reduzieren wird.
Herzlichen Dank nochmal, das hat mir sehr geholfen.
AW: VBA Adresse der aktiven Zelle ausgeben
16.12.2022 15:25:21
snb
Das geht einfacher so z.B
wenn columns B:D eingefärbt werden müssen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Columns(2).Resize(, 3).Interior.ColorIndex = 0
Cells(Target.Row, 2).Resize(, 3).Interior.ColorIndex = 4 * Abs(((Target.Column + 1) \ 3 = 1))
End Sub

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

VBA Adresse der aktiven Zelle ausgeben


Schritt-für-Schritt-Anleitung

Um die Adresse der aktuell ausgewählten Zelle in Excel per VBA auszulesen und in bestimmte Zellen zu schreiben, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du im Menü Einfügen auf Modul klickst.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub ActiveCellAddress()
       ' Nummer der aktiven Zeile in Zelle A1 schreiben
       Range("A1").Value = ActiveCell.Row
       ' Nummer der aktiven Spalte in Zelle A2 schreiben
       Range("A2").Value = ActiveCell.Column
    End Sub
  4. Um den Code auszuführen, kannst du ihn einfach im VBE-Fenster ausführen oder ein Makro erstellen.

  5. Du kannst auch den folgenden Code verwenden, um die Spaltenadresse zu erhalten:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       Range("A1").Value = Target.Row
       Range("A2").Value = Split(Target.Address, "$")(1)
    End Sub

Dieser Code gibt die Nummer der aktiven Zeile und den Buchstaben der aktiven Spalte in den Zellen A1 und A2 aus.


Häufige Fehler und Lösungen

  • Fehler: Der VBA-Code gibt nicht die erwartete Adresse aus.

    • Lösung: Überprüfe, ob der Code im richtigen Worksheet-Modul oder in einem Standardmodul eingefügt wurde. Stelle sicher, dass du die aktive Zelle tatsächlich auswählst, bevor du den Code ausführst.
  • Fehler: Die Zelladresse wird nicht korrekt angezeigt.

    • Lösung: Achte darauf, dass du die richtige Syntax für die Split-Funktion verwendest. Teste den Code schrittweise, um sicherzustellen, dass jede Zeile wie erwartet funktioniert.

Alternative Methoden

Wenn du die Adresse der aktiven Zelle ohne VBA auslesen möchtest, kannst du folgende Formel verwenden:

=ADRESSE(ZEILE(AKTIVEZELLE()),SPALTE(AKTIVEZELLE()),4)

Diese Formel gibt die Adresse der aktiven Zelle zurück, ohne dass VBA erforderlich ist. Du kannst sie in eine beliebige Zelle eingeben.


Praktische Beispiele

  1. Zelle A1 als aktive Zelle hervorheben: Um die aktive Zelle farblich hervorzuheben, kannst du den folgenden Code verwenden:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       Cells.Interior.ColorIndex = 0 ' Alle Zellen zurücksetzen
       Target.Interior.ColorIndex = 6 ' Aktive Zelle hervorheben
    End Sub
  2. Aktive Zelle in einer Eingabemaske verwenden: Wenn du eine Eingabemaske in Excel hast, kannst du die Adresse der aktiven Zelle verwenden, um entsprechende Eingaben zu tätigen.


Tipps für Profis

  • Verwende die Worksheet_SelectionChange-Ereignisprozedur, um dynamisch die Adresse der Zelle zu ermitteln, wenn der Benutzer die Zelle wechselt.
  • Nutze die Bedingte Formatierung, um die aktive Zelle weiter zu formatieren, basierend auf den Werten, die du aus der aktiven Zelle ausliest.
  • Es kann hilfreich sein, die Debug.Print-Funktion zu verwenden, um den aktuellen Zustand von Variablen im VBE zu überprüfen.

FAQ: Häufige Fragen

1. Wie kann ich die Adresse einer Zelle in eine andere Zelle schreiben?
Du kannst die Adresse einer Zelle einfach mit Target.Address auslesen und in eine andere Zelle schreiben, wie im obigen Beispiel gezeigt.

2. Kann ich die aktive Zelle auch ohne VBA auslesen?
Ja, du kannst die Funktion ADRESSE in Excel verwenden, um die Adresse der aktiven Zelle zu erhalten, ohne VBA zu verwenden.

3. Wie kann ich die aktive Zeile farblich hervorheben?
Verwende die bedingte Formatierung oder das Worksheet_SelectionChange-Ereignis, um die aktive Zeile hervorzuheben, basierend auf der aktiven Zelle.

4. Was ist der Unterschied zwischen ActiveCell und Target in VBA?
ActiveCell bezieht sich auf die Zelle, die aktuell ausgewählt ist, während Target die Zelle(n) beschreibt, die durch eine Aktion wie das Ändern der Auswahl betroffen sind.

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