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

Welche Zelle wurde angeklickt

Forumthread: Welche Zelle wurde angeklickt

Welche Zelle wurde angeklickt
08.03.2007 14:09:17
Sven
Hallihallo.
Wie bekomme ich die Information, welche Zelle gerade angeklickt wurde?
Folgende Situation:
In eine Tabelle soll mit einem Makro ein Text in definierte Zellen geschrieben werden. Über ein UserForm wird der zu schreibende Text eingelesen. Die Zielzelle, in die nun der Text geschrieben werden soll, soll per Mausklick bestimmt werden. Das soll derart erfolgen: Eine Schaltfläche auf dem UserForm lässt das UserForm verschwinden (UserForm1.Hide). Die Adresse der Zelle, die als nächstes durch Anklicken aktiviert wird, soll in eine Variable (Typ Range) geschrieben werden. Hier soll der Text rein. Dabei soll auch der Wechsel von einem zum anderen Arbeitsblatt möglich sein. Mir schwebt sowas wie "Sub Name_OnMouseClick ()" vor
Eine Möglichkeit (und so ist es bis jetzt) ist, die Eingabe über eine Inputbox, Typ 8 (Range): Nach dem klicken auf die Schaltfläche im UserForm verschwindet die UserForm und eine InputBox erscheint. Man klickt auf die Zielzelle und im Textfeld der Inputbox erscheint die Adresse der angeklickten Zelle. Nach klicken auf OK im InputBox-Fenster wird die Adresse in eine Variable geschrieben. Nachteil: man muss zweimal "OK" klicken um einmal an die Adresse zu kommen.
Wer kann helfen?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Welche Zelle wurde angeklickt
08.03.2007 14:26:00
OttoH
Hallo Sven,
setze folgendes Makro hinter die Arbeitsmappe; dann kannst du die Adresse auslesen.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
MsgBox Target.Address
End Sub

Gruß OttoH
AW: Welche Zelle wurde angeklickt
08.03.2007 14:30:00
Andi
Hi,
verstehe ich das richtig, Du hast einen Text, der irgendwie aus dem UserForm übernommen wird, und der soll in eine bestimmte Zelle geschrieben werden, die wiederum durch anklicken ausgewählt wird?
Das sollte doch eigentlich mit dem Workbook_SheetSelectionChange-Ereignis des Workbook kein Problem sein, oder?
Schönen Gruß,
Andi
Anzeige
AW: Welche Zelle wurde angeklickt
08.03.2007 14:49:36
Sven
Hallo Andi, hallo Otto.
Das Workbook_SheetSelectionChange-Ereignis läuft permanent ab, wenn ich irgendeine Zelle ändere. Dabei ist es unabhängig, ob ich ein anderes Makro laufen lasse oder nicht. Wenn ich nun den Button auf meinem UserForm klicke und dann eine Zelle wähle, dann bekomme ich zwar die Adresse der angeklickten Zelle in eine Variable geschrieben, aber ich möchte dann den Text direkt in diese Zelle schreiben lassen. Gebe ich diesen Vorgang in die Sub Workbook_SheetSelectionChange ein, so wird bei jedem Wechsel der Zelle ein Text in diese Zelle geschrieben, und das unabhängig davon, ob ein Makro läuft oder nicht. Ähnlich ist es, wenn ich aus der Workbook_SheetSelectionChange-Funktion eine andere Sub aufrufe. Das scheint mir also keine adäquate Lösung zu sein.
Anzeige
AW: Welche Zelle wurde angeklickt
08.03.2007 14:58:28
Andi
Hi,
deklariere in einem Standardmodul eine globale Boolsche Variable, die Du bei einem Click auf den Button im UserForm auf True setzt. Im Workbook_SheetSelectionChange fragst Du diese Variable ab, und fügst den Text nur dann ins Target ein, wenn sie True ist. Nach dem Einfügen setzt Du sie wieder auf False, dann kannst Du beliebig in der Mappe rumklicken, ohne dass irgendwas geschieht.
Schönen Gruß,
Andi
Anzeige
AW: Welche Zelle wurde angeklickt
08.03.2007 14:48:00
Josef
Hallo Sven,
https://www.herber.de/bbs/user/40943.xls
WARNUNG! Das RefEdit-Steuerelement macht oft Probleme, die bis zum Absturz von Excel gehen können.
Gruß Sepp
Anzeige
AW: Welche Zelle wurde angeklickt
08.03.2007 15:05:54
Sven
Hallo Sepp,
das sieht schon recht elegant aus, aber damit muss ich genauso oft klicken wie bisher. Ich würde gerne die beiden Clicks nach dem Wählen der Zelle sparen, d.h. sobald die Zelle gewählt ist soll der Text reingeschrieben werden - ohne nochmalige Bestätigung.
AW: Welche Zelle wurde angeklickt
08.03.2007 15:17:00
Josef
Hallo Sven,
das würde ich mir noch mal überlegen. Was passiert, wenn man aus Versehen die Falsche Zelle auswählt?
Ansonsten könntest du im Modul "DieseArbeitsmappe" einen Code woe dieden verwenden.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With UserForm1
    If .Visible Then Target(1, 1) = .TextBox1.Text
End With
End Sub

Gruß Sepp
Anzeige
woe dieden = wie diesen o.T. ;-)))
08.03.2007 15:18:00
Josef
Gruß Sepp
;
Anzeige
Anzeige

Infobox / Tutorial

Zelle per Mausklick auswählen und Text einfügen


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).

  2. Arbeitsmappe auswählen: Doppelklicke auf „DieseArbeitsmappe“ im Projektfenster.

  3. Code einfügen: Füge den folgenden Code ein:

    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
       If UserForm1.Visible Then
           Target.Value = UserForm1.TextBox1.Text
       End If
    End Sub
  4. UserForm erstellen: Füge ein UserForm hinzu und platziere ein Textfeld (TextBox) und einen Button darauf.

  5. Button-Code: Setze den Button-Click-Code, um das UserForm zu verstecken und die Zelle zu wählen:

    Private Sub CommandButton1_Click()
       UserForm1.Hide
    End Sub
  6. Variablen festlegen: Stelle sicher, dass die TextBox im UserForm den Text enthält, den du einfügen möchtest.

Jetzt kannst du das UserForm anzeigen und die Zelle per Mausklick auswählen. Der Text wird automatisch in die angeklickte Zelle eingefügt, ohne dass du zusätzliche Bestätigungen benötigst.


Häufige Fehler und Lösungen

  • Fehler: Der Text wird nicht in die Zelle eingefügt.

    • Lösung: Stelle sicher, dass das UserForm sichtbar ist, wenn du eine Zelle auswählst. Überprüfe auch, ob im Textfeld (TextBox) ein Wert eingegeben wurde.
  • Fehler: Das Workbook_SheetSelectionChange-Ereignis wird nicht ausgelöst.

    • Lösung: Vergewissere dich, dass die Makros in deiner Excel-Datei aktiviert sind.

Alternative Methoden

Anstelle eines UserForms kannst du auch eine InputBox verwenden, um die Zelle auszuwählen und den Text einzugeben. Der Code dafür könnte so aussehen:

Private Sub CommandButton1_Click()
    Dim selectedCell As Range
    Set selectedCell = Application.InputBox("Wähle eine Zelle:", Type:=8)
    If Not selectedCell Is Nothing Then
        selectedCell.Value = UserForm1.TextBox1.Text
    End If
End Sub

Diese Methode erfordert jedoch einen zusätzlichen Klick, um die Adresse der Zelle zu bestätigen.


Praktische Beispiele

  • Beispiel 1: Du möchtest einen Text in die Zelle A1 einfügen. Öffne das UserForm, gib den gewünschten Text ein und klicke auf die Zelle A1. Der Text wird automatisch eingefügt.

  • Beispiel 2: Wenn du die Zelle B2 anklickst, wird der Text aus der TextBox des UserForms in diese Zelle eingefügt. Du kannst zwischen den Arbeitsblättern wechseln und trotzdem den Text in die gewünschte Zelle einfügen.


Tipps für Profis

  • Nutze die Target-Eigenschaft, um gezielt mit den angeklickten Zellen zu arbeiten.
  • Verwende die Worksheet_SelectionChange-Ereignisse, um dynamische Anpassungen deines Excel-Dokuments vorzunehmen.
  • Überlege dir, wie du Fehlerbehandlungen einbauen kannst, um unerwartete Eingaben abzufangen.

FAQ: Häufige Fragen

1. Wie wird "klicke" geschrieben?
Die korrekte Schreibweise ist "klicke".

2. Was ist das Workbook_SheetSelectionChange-Ereignis?
Es handelt sich um ein Ereignis, das ausgelöst wird, wenn eine Zelle in einem Arbeitsblatt ausgewählt wird. Es ermöglicht dir, auf Änderungen in der Auswahl zu reagieren und Aktionen auszuführen, beispielsweise das Einfügen von Text in die angeklickte Zelle.

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