clickbox
hallo,
kann man in excel durch Anklicken einer Zelle dort einen vorgegebenen Wert generieren?
z.B.einmal klicken=1
zweimal klicken =2
wenn das geht, das wäre ziemlich toll!
viele Grüße
Richard
Antwort schreiben
Antwort 1 von Hajo_Zi vom 15.04.2020, 09:16 Options
Hallo Richard,
folgenden Code unter der Tabelle.
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Target = 2
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Target = 1
End If
End Sub
Gruß hajo
Antwort 2 von Saarbauer vom 15.04.2020, 09:18 Options
Hallo,
als einfachste Lösung
Zellinhalt = Zelinhalt +1
Dadurch wird bei jedem Klick der Inhalt um 1 erhöht.
Solltest du etwas anderes voehaben, dann wäre eine genauere Erläuterung deines Problems sinnvoll
Helmut
Antwort 3 von rheym vom 15.04.2020, 14:32 Options
Hallo Helmut, hallo Hajo,
vielen Dank für Eure Antworten, hört sich beides vielversprechend an, bei hajo weiss ich nicht genau, wie ich den code mit der Zelle in Verbindung bringen soll.
Bei Helmut weiss ich auch nicht, was ich in die Zelle schreiben soll. Wenn ich den Zellinhalt +1 eingebe entsteht ein Zirkelbezug
Noch einmal zur genaueren Erläuterung. Der Zellwert kann 0,1 oder 2 sein. Die Zelle ist auf den Wert 1 voreingestellt. Wenn ich die Zelle anklicke soll sich der Wert auf 2 verändern und wenn ich die Zelle noch einmal anklicke soll sich der Zellwert 0 sein und wenn ich die Zelle noch einmal anklicke, soll, der Zellwert wieder 1 sein und so weiter.
vielen Dank für Eure bisherige Hilfe
Richard
Antwort 4 von Saarbauer vom 15.04.2020, 14:41 Options
Hallo,
was du vorhast geht nur mit einem Makro und das hat @Hajo_Zi dir schon vorgegeben. Musst du nur einbinden in deine Tabelle
Gruß
Helmut
Antwort 5 von Hajo_Zi vom 15.04.2020, 14:43 Options
Hallo Richard,
Du mußt meine Zellbezeichnung $A$1 nur durch Deine ersetzen, achte auf das $ Zeichen. Das war natürlich für die erste Aufgabenstellung gemeint. Für die jetzige geht es nicht mehr.
Gruß Hajo
Antwort 6 von rheym vom 15.04.2020, 14:48 Options
Hallo Helmut,
leider weiss ich nicht, wie man ein Makro in eine Tabelle einbindet, wenn Du es mir erklären willst und das in diesem Rahmen möglich ist, würde ich mich freuen, ansonsten muss ich mir wohl ein Buch kaufen, hast Du einen Tipp wo man sowas gut lernen kann?
Gruß
Richard
Antwort 7 von Hajo_Zi vom 15.04.2020, 14:59 Options
Hallo Richard,
in VBA unter der Tabelle.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Target = 1 + Target
If Target > 2 Then Target = 0
End If
End Sub
Die Zelle muss aber gewechselt werden. Besser Du machts es mit dem Doppelklick Ereignis.
Gruß Hajo
Antwort 8 von rheym vom 15.04.2020, 15:22 Options
Hallo Hajo,
so?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range)
If Target.Address = "$A$1" Then
Target = 1 + Target
If Target > 2 Then Target = 0
End If
End Sub
Leider kenne ich mich mit VBA noch nicht aus. Ich öffne denVBA editor, klicke links bei VBA-Projekt meiner Mappe und dann weiss ich nicht mehr weiter....
Gruß Richard
Antwort 9 von Hajo_Zi vom 15.04.2020, 15:38 Options
Hallo Richard,
klick erst links Doppelt auf Deine Tabelle und dann Code ins rechte Fenster kopieren oder
rechte Maustaste im Register auf die Tabelle und Code anzeigen.
Gruß Hajo
Antwort 10 von rheym vom 15.04.2020, 16:17 Options
Hallo Hajo,
hey es hat funktioniert! Vielen Dank!!!!!!
Gruß
Richard
Antwort 11 von rheym vom 15.04.2020, 16:32 Options
Hallo Hajo,
jetzt kommen natürlich gleich die nächsten Fragen:
geht das auch mit einfachem Klick?
Kann ich die Anzahl der Zellen vergrößern oder braucht jede Zelle sein eigenes Makro?
Gruß
Richard
Antwort 12 von Hajo_Zi vom 15.04.2020, 16:47 OptionsLösung
Hallo Richard,
mit Klick nur falls Du zwischendurch eine andere zelle wählst, darum hatte ich Doppelklick vorgeschlagen. Da ist es dann mit mehreren Zellen auch einfacher.
If Target.Address = "$A$1" Or Target.Address = "$A$2" Then
bei Doppelklick
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Me.Range("A2:A500")) Is Nothing Then Exit Sub
Target = 1 + Target
If Target > 2 Then Target = 0
End Sub
Gruß Hajo
Antwort 13 von rheym vom 15.04.2020, 17:39 Options
Hallo Hajo,
vielen Dank noch einmal für Deine Hilfe! Du hast mir echt geholfen
viele Grüße
Richard