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

Forumthread: aktuelle zeile beim button

aktuelle zeile beim button
11.02.2005 16:22:25
Jonny
Gibt es eine Möglichkeit die Zeile in der ein Button steht auszulesen?!
Danke

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aktuelle zeile beim button
Udo
MsgBox ActiveSheet.Shapes("Button 1").TopLeftCell.Address
Udo
AW: aktuelle zeile beim button
11.02.2005 16:30:29
Jonny
Die ist nicht so gut....da bei mir alle Buttons den selben Namen haben...gibt es sonst noch eine Möglichkeit?!
AW: aktuelle zeile beim button
Udo
Liefert die Zelle, dessen Button geklickt wurde:
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
Udo
Anzeige
AW: aktuelle zeile beim button
11.02.2005 16:43:34
Jonny
Wie kann ich daraus die Zeile rauslesen!?
AW: aktuelle zeile beim button
Udo
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
AW: aktuelle zeile beim button
11.02.2005 16:50:26
Jonny
Hierbei macht er bei mir einen Fehler, er geht von oben aus und nimmt den obersten, welcher aber direkt nicht angeklickt sein muss.
Wenn man aber mit .Address arbeitet, gibt er die richtige Zeile aus...Ich weiss aber nicht wie ich das speichern soll!?
hab schon dieses versucht:
Cells(z,s) = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
funkt aber nicht...
Anzeige
AW: aktuelle zeile beim button
Udo
Sorry, verstehe nur Bahnhof...
Udo
AW: aktuelle zeile beim button
11.02.2005 17:04:03
Jonny
Wenn ich .Row nehme, dann nimmt er nicht die Zeile des Buttons, welches ich angeklickt habe.
Denn sobald ein weiterer Button überhalb des angeklickten Buttons ist, nimmt er diesen.
d. h. Ich hab drei Button (a, b, c)
Button a
Button b
Button c
klicke ich auf button a, erhalte ich die Zeile von Button a
klicke ich auf button b, erhalte ich die Zeile von Button a
klicke ich auf button c, erhalte ich die Zeile von Button a
Wenn ich aber die Addresse anfrage mittels .Address dann gibt er mir die richtige zelle wieder:
Button a
Button b
Button c
klicke ich auf button a , erhalte ich die Zelle von Button a
klicke ich auf button b , erhalte ich die Zelle von Button b
klicke ich auf button c , erhalte ich die Zelle von Button c
-----
soweit ok?
Nun muss ich, um aus der Addresse die Zeile rauszulesen, die Addresse irgendwie speichern!? Ich weiss halt nicht wie?!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Aktuelle Zeile beim Button in Excel auslesen


Schritt-für-Schritt-Anleitung

Um die aktuelle Zeile eines Buttons in Excel auszulesen, kannst Du den folgenden VBA-Code verwenden. Stelle sicher, dass Du die Entwicklertools in Excel aktiviert hast, um den VBA-Editor nutzen zu können.

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub GetButtonRow()
       Dim buttonRow As Long
       buttonRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
       MsgBox "Die aktuelle Zeile des Buttons ist: " & buttonRow
    End Sub
  4. Füge den Button zu Deinem Arbeitsblatt hinzu: Gehe zu Entwicklertools > Einfügen > Button (Formularsteuerung).

  5. Verknüpfe den Button mit dem Code: Rechtsklicke auf den Button, wähle Makro zuweisen und wähle GetButtonRow.

  6. Klicke auf den Button: Es wird ein Popup angezeigt, das die Zeile des Buttons anzeigt.


Häufige Fehler und Lösungen

  • Problem: Der Code gibt die falsche Zeile zurück.

    • Lösung: Stelle sicher, dass Du ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row verwendest, um die Zeile des tatsächlich geklickten Buttons zu erhalten.
  • Problem: "Objekt nicht gefunden" Fehler.

    • Lösung: Überprüfe, ob der Button korrekt benannt ist und ob Du den richtigen Button anvisierst.

Alternative Methoden

Eine andere Möglichkeit, die Zeile eines Buttons in Excel auszulesen, wäre, die Adresse der Zelle zu verwenden:

Sub GetButtonAddress()
    Dim buttonAddress As String
    buttonAddress = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
    MsgBox "Die Adresse des Buttons ist: " & buttonAddress
End Sub

Diese Methode gibt die Adresse der Zelle zurück, in der der Button platziert ist. Du kannst dann die Zeilennummer aus dieser Adresse extrahieren.


Praktische Beispiele

Angenommen, Du hast drei Buttons in den Zellen A1, A2 und A3. Wenn Du den Button in A2 klickst, zeigt der Code die Zeile 2 an:

' Beispiel für das Abrufen der Zeile
Sub Beispiel()
    MsgBox "Aktuelle Zeile: " & ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
End Sub

Dieser Code kann leicht in Deiner Arbeitsmappe implementiert werden und hilft Dir, die aktuelle Zeile eines geklickten Buttons auszulesen.


Tipps für Profis

  • Benennung der Buttons: Wenn Du mehrere Buttons hast, die gleich benannt sind, erwäge, jedem Button einen eindeutigen Namen zu geben, um Verwirrung zu vermeiden.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinen VBA-Skripten, um mögliche Probleme beim Auslesen der Zeile zu vermeiden.

  • Verwendung von Variablen: Speichere die Adresse oder Zeile in einer Variable, um sie später in Deiner Berechnung oder Logik verwenden zu können.


FAQ: Häufige Fragen

1. Wie kann ich die Zeile in eine andere Zelle eintragen?
Du kannst die Zeile wie folgt in eine Zelle eintragen:

Cells(1, 1).Value = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row

Dies würde die Zeilennummer in Zelle A1 speichern.

2. Was mache ich, wenn ich mehrere Buttons habe?
Verwende Application.Caller, um die spezifische Instanz des Buttons zu erhalten, der angeklickt wurde. So erhältst Du immer die korrekte Zeile, unabhängig von der Buttonanzahl.

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