Buchstaben durch Klick automatisch eingeben?

... komplette Frage anzeigen

3 Antworten

Du könntest auf das Worksheet-Ereignis SelectionChange reagieren.

Falls es dich stört, dass das auch darauf reagiert, wenn du mit den Pfeiltasten dorthin gehst, kannst du auch auf das Ereignis BeforeDoubleClick reagieren - dann passiert nur was bei Doppelklick. Das erfordert dann aber einen Doppelklick. (Einen Ereignishandler für einen einfachen Klick habe ich nicht gefunden - nur einen für einen Rechtsklick: BeforeRightClick)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Target.Column = 4 Then 'Spalte D; für andere Spalten entsprechend anpassen
If Me.Cells(Target.Row, Target.Column - 1).Value <> Empty Then 'Nur ausführen, wenn in der Zelle links von der angeklickten auch was steht
Target.Value = "SelectionChange"
End If
End If
End If
End Sub

bzw.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count = 1 Then
If Target.Column = 4 Then 'Spalte D; für andere Spalten entsprechend anpassen
If Me.Cells(Target.Row, Target.Column - 1).Value <> Empty Then 'Nur ausführen, wenn in der Zelle links von der angeklickten auch was steht
Target.Value = "DoubleClick"
Cancel = True 'Verhindert, dass die Zelle dann auch "betreten" wird
End If
End If
End If
End Sub

bzw.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Cells.Count = 1 Then
If Target.Column = 4 Then 'Spalte D; für andere Spalten entsprechend anpassen
If Me.Cells(Target.Row, Target.Column - 1).Value <> Empty Then 'Nur ausführen, wenn in der Zelle links von der angeklickten auch was steht
Target.Value = "RightClick"
Cancel = True 'Verhindert, dass das Kontextmenü aufgerufen wird
End If
End If
End If
End Sub
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
17.06.2017, 17:07

DH!

Ich habe mir jetzt die Frage nochmal durchgelesen und  denke, dass Du es richtig verstanden hast und ich es zu kompliziert ausgelegt habe, indem ich nach jedem Klick einen anderen Eintrag aus einer Liste generiere und das quasi als Schleife.
Ich hatte gedacht! die Einträge sollten je nach Wert der Zelle in eine andere Tabelle übernommen werden.
So war das aber wohl gar nicht gemeint - wenn ich mir die Frage nochmal genau ansehe, sondern es gibt nur eine Tabelle.

P.S.: Allerdings bin ich mir nicht böse wegen der Zeitverschwendung, denn meine Lösung werde ich mir merken, da die imho für andere Aufgabenstellungen recht interessant sein kann. 🙂

1
Kommentar von ernkie
18.06.2017, 08:51

Hab mich für die erste Variante entschieden. (Aufwandminimierung 🙂)

Dann noch das Target.Value = "SelectionChange" gem. Anregung von Oubyi auf  = ChrW$(&H2714) gewechselt. 

Funktioniert einwandfrei und sieht super aus! DANKE und schönen Sonntag.

1

Suche aber eine Möglichkeit, um mit einem Klick in die Zelle (ohne weitere Eingabe) den Wert der Zelle zu verändern

Heißt das, Du willst quasi eine Liste "durchklicken"?
Da sehe ich das Problem, dass es in VBA kein Ereignis gibt - soweit ich weiß - das einen einfachen Klick in die Zelle abfängt.
Es muss schon ein Doppelklick sein.
DAS würde, für den Bereich B1:B100, so funktionieren:

Mach einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und gehe dann auf "Code anzeigen...".
In das große Fenster des VBA-Editors, der sich dann öffnet kopierst Du folgenden Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B1:B100")) Is Nothing Then
Select Case Target.Value
Case ""
Target.Value = "Egal_A"
Cancel = True
Case "Egal_A"
Target.Value = "Egal_B"
Cancel = True
Case "Egal_B"
Target.Value = "Egal_C"
Cancel = True
Case "Egal_C"
Target.Value = "Egal_D"
Cancel = True
Case "Egal_D"
Target.Value = ""
Cancel = True
End Select
End If
End Sub

Die Datei musst Du danach aber als .xlsm speichern, und Makros zulassen.

Bei Doppelklick in eine der Zellen im Bereich B1:B100 wird dann die Liste pro Klick von Leer über "Egal_A/B/C/D" bis wieder zu Leer durchlaufen.

Das ist erstmal nur ein primitives Beispiel und lässt sich sicherlich optimieren und auch erweitern.
Wäre das ein Ansatz für Dich?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
17.06.2017, 17:11

P.S.:
Da habe ich wohl mal wieder zu kompliziert gedacht und die Aufgabenstellung war einfacher und wurde von PWolf (DH!) sehr gut gelöst (siehe meine Kommentar dort).
Allerdings bin ich mir nicht böse wegen der Zeitverschwendung, denn meine Lösung werde ich mir merken, da die imho für andere Aufgabenstellungen recht interessant sein kann. 🙂

0

Wenn ich dich richtig verstehe, möchtest du nicht jedes Mal einen Begriff in die Zelle neben dem Artikel eingeben, sondern aus einer vorgefertigten Liste einen Begriff auswählen?

Wenn dem so ist, würde ich mit einem Dropdownfeld arbeiten. Wie du dieses in Excel erstellst, steht hier:

https://support.office.com/de-de/article/Erstellen-von-Dropdownlisten-7693307a-59ef-400a-b769-c5402dce407b

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ernkie
17.06.2017, 15:28

Danke
Suche aber eine Möglichkeit, um mit einem Klick in die Zelle (ohne weitere Eingabe) den Wert der Zelle zu verändern

0

Was möchtest Du wissen?