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

Forumthread: VBA-Code für die aktuelle Zeile

VBA-Code für die aktuelle Zeile
07.08.2014 10:35:02
Nik
Hi,
ich bin gerade dabei einen Code zu schreiben, nur fehlt mir der VBA-Code für die "aktuelle Zeile". Immer die Zeile, die gerade angeklickt wird, soll in einen bestimmten Reiter übertragen werden. Kann mir jemand den Code sagen?
Danke
Nik

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code für die aktuelle Zeile
07.08.2014 10:39:25
Robert
Hallo nik,
Die erste Zeile der Auswahl:
Selection.Cells(1).Row
Viele Grüße
Robert

VBA-Code für die aktuelle Zeile
07.08.2014 11:19:17
Matthias
Hallo Robert
Aufgabe:
Immer die Zeile, die gerade angeklickt wird
Du hast zwar Recht mit Deiner Aussage
Die erste Zeile der Auswahl :-)
Das ist aber nicht zwangsläufig die Zeile der angeklickten Zelle.
Wenn man z.B. B9:B3 markiert (also B9 anklickt und bis B3 markiert)
gibt der Code die Zeile(3) zurück. Angeklickt wurde aber Zeile(9)
Außerdem macht es auch keinen Sinn einen mehzeiligen Bereich zu markieren,
wenn man nur die angeklickte Zeilennummer braucht ;-)
Bitte nicht als kritisieren deuten
Gruß Matthias

Anzeige
AW: VBA-Code für die aktuelle Zeile
07.08.2014 12:04:47
Robert
Hallo Matthias,
Du hast natürlich recht, habe es als berechtigte, konstruktive Kritik wahrgenommen ;-)
Zu ActiveCell.Row eine Frage:
Gibt es da nicht ein Problem, wenn per Makro vorher eine andere Zelle geändert wurde?
Ich dachte immer alles mit "Active" im Namen bezieht sich auf das, wo das Makro sich grade befindet und habe deshalb von Activecell Abstand genommen.
Viele Grüße
Robert

Anzeige
VBA-Code für die aktuelle Zeile
07.08.2014 12:23:36
Matthias
Hallo Robert
Das ist insoweit richtig, wenn es ein Worksheet_Change-Ereignis gibt
Aber auch nur dann wenn in den Optionen der Cursor verschoben wird.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox ActiveCell.Address
End Sub
Deshalb schreibt man besser
Target statt ActiveCell
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address
End Sub
Wenn man allerdings per VBA einer Zelle einen Inhalt gibt:
Cells(3, 3) = "Hallo"

so ändert sich nichts an der Adresse von ActiveCell
Hier ging es ja auch nur um das Anklicken einer Zelle in einer bestimmten Zeile
Diese Zeilennummer zurückzugeben war mE die Aufgabe.
Gruß Matthias

Anzeige
AW: VBA-Code für die aktuelle Zeile
07.08.2014 13:48:54
Robert
Hallo Matthias,
Vielen lieben Dank für die Klarstellung!
Wieder was gelernt!
Viele Grüße
Robert

ActiveCell.Row ... owT
07.08.2014 10:44:19
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA-Code für die aktuelle Zeile


Schritt-für-Schritt-Anleitung

Um die aktuelle Zeile in Excel mit VBA zu ermitteln, kannst du den folgenden Code verwenden. Dieser Code gibt die Zeilennummer der aktuell aktiven Zelle zurück:

Sub AktuelleZeileErmitteln()
    Dim aktuelleZeile As Long
    aktuelleZeile = ActiveCell.Row
    MsgBox "Die aktuelle Zeile ist: " & aktuelleZeile
End Sub
  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Führe das Makro über Entwicklertools > Makros aus und wähle AktuelleZeileErmitteln.

Häufige Fehler und Lösungen

  • Problem: Der Code gibt nicht die erwartete Zeilennummer zurück.

    • Lösung: Stelle sicher, dass du eine Zelle im Excel-Blatt ausgewählt hast, bevor du das Makro ausführst. Wenn du eine Auswahl aus mehreren Zellen hast, gibt ActiveCell.Row die Zeilennummer der aktiven Zelle zurück.
  • Problem: Die Fehlermeldung "Objektvariable nicht gesetzt".

    • Lösung: Überprüfe, ob die aktive Zelle tatsächlich existiert und ob du dich im richtigen Blatt befindest.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du die aktuelle Zeilennummer auch einfach mit einer Formel ermitteln:

=ZEILE()

Diese Formel gibt die Zeilennummer der Zelle zurück, in der sie eingegeben wurde. Du kannst sie in jeder Zelle verwenden, um die aktuelle Zeilennummer anzuzeigen.


Praktische Beispiele

Hier sind einige praktische Anwendungen des VBA-Codes:

  1. Aktive Zeile in einen anderen Reiter kopieren:
Sub KopiereAktiveZeile()
    Dim aktuelleZeile As Long
    aktuelleZeile = ActiveCell.Row
    Rows(aktuelleZeile).Copy Destination:=Sheets("Zielblatt").Rows(1)
End Sub
  1. Aktuelle Zeile ausgeben und gleichzeitig eine Notiz hinzufügen:
Sub NotizZurAktivenZeile()
    Dim aktuelleZeile As Long
    aktuelleZeile = ActiveCell.Row
    Cells(aktuelleZeile, 2).Value = "Notiz hinzugefügt"
    MsgBox "Notiz zur Zeile " & aktuelleZeile & " hinzugefügt."
End Sub

Tipps für Profis

  • Verwende Target anstelle von ActiveCell, um Probleme mit Änderungen zu vermeiden, insbesondere bei Worksheet_Change-Ereignissen.
  • Um die aktive Zeile in einer Variablen zu speichern und später zu verwenden, definiere sie als Public-Variable in einem Modul.
  • Experimentiere mit der Selection-Eigenschaft, um mehrere Zeilen auf einmal zu verarbeiten.

FAQ: Häufige Fragen

1. Wie kann ich die aktuelle Zeile in einer anderen Excel-Datei verwenden? Du kannst den gleichen VBA-Code verwenden, solange du die Datei mit dem Makro geöffnet hast.

2. Was passiert, wenn ich mehrere Zellen auswähle? Der Code gibt die Zeilennummer der zuletzt aktiven Zelle zurück. Wenn du die erste Zeile der Auswahl benötigst, verwende Selection.Rows(1).Row.

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