VBA: Bei Klick andere Zelle auf 0

Moin zusammen,

ich möchte bei einem Klick auf A6 die Zelle D6 auf 0 (Null) setzen.
Dann Klick auf B9 und D9 geht auf Null.

Habs schon mit

Private Sub Worksheet\_SelectionChange(ByVal Target As Range)

 If Intersect(Target, Range("A6:A6")) Is Nothing Then Exit Sub

Range("d6").Select
 ActiveCell.FormulaR1C1 = "0"

End Sub

versucht. Dann kann ich aber in A6 nichts mehr eingeben.
Ich kriegs nicht umgestellt.

Danke für Hilfe.

Gruß
Rolf

Hallo Rolf.

Ist nur ein Vorschlag, aber wenn Du mit einem Doppelklick auch leben könntest, dann funktioniert das mit folgendem Code:

Private Sub Worksheet\_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 Select Case Target.Address
 Case "$A$6"
 Range("$D$6") = 0
 End Select
End Sub

VG
Carsten

Moin Carsten,

Ist nur ein Vorschlag, aber wenn Du mit einem Doppelklick auch
leben könntest, dann funktioniert das mit folgendem Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,
Cancel As Boolean)
Cancel = True
Select Case Target.Address
Case „$A$6“
Range("$D$6") = 0
End Select
End Sub

Danke für den Tipp, damit hatte ich auch schon geliebäugelt,
das funktioniert, aber den Gefallen wird mir der Anwender nicht tun.

Bin aber etwas weiter.
Hiermit bleibt er schon mal auf der angeklickten Zelle A6 stehen
und schreibt mir in D6 eine Null.

Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
 If Intersect(Target, Range("A6:A6")) Is Nothing Then Exit Sub
 Range("$D$6") = 0

Die Frage bleibt, wie kann ich das wiederholen? Klick in B9 und D9 geht auf Null?

Hast Du noch eine Idee?

Gruß
Rolf

Hallo Rolf.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range(„A6:A6“)) Is Nothing Then Exit
Sub
Range("$D$6") = 0

Die Frage bleibt, wie kann ich das wiederholen? Klick in B9
und D9 geht auf Null?

Hast Du noch eine Idee?

Wenn es dabei wirklich nur um die beiden Zellen geht, kannst Du Deinen Code mit der „Select Case“-Anweisung erweitern.
Das sollte dann so aussehen:

Private Sub Worksheet\_SelectionChange(ByVal Target As Range)

 Select Case Target.Address
 Case "$A$6"
 If Intersect(Target, Range("A6:A6")) Is Nothing Then Exit Sub
 Range("$D$6") = 0
 Case "$B$9"
 If Intersect(Target, Range("B9:B9")) Is Nothing Then Exit Sub
 Range("$D$9") = 0
 End Select

End Sub

Falls Du lieber die Inhalte aus der Zelle löschen möchtest, anstatt eine Null hineinzuschreiben, lautet die Anweisung:

 Range"$D$6").ClearContents

Wenn es in Deiner Datei noch um mehrere Bereiche geht, dann kann die „Case“-Liste schon 'mal ziemlich lang werden.
VG Carsten

Danke
Moin Carsten,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range(„A6:A6“)) Is Nothing Then Exit
Sub
Range("$D$6") = 0

Die Frage bleibt, wie kann ich das wiederholen? Klick in B9
und D9 geht auf Null?

Hast Du noch eine Idee?

Wenn es dabei wirklich nur um die beiden Zellen geht, kannst
Du Deinen Code mit der „Select Case“-Anweisung erweitern.
Das sollte dann so aussehen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Select Case Target.Address
Case „$A$6“
If Intersect(Target, Range(„A6:A6“)) Is Nothing
Then Exit Sub
Range("$D$6") = 0
Case „$B$9“
If Intersect(Target, Range(„B9:B9“)) Is Nothing
Then Exit Sub
Range("$D$9") = 0
End Select

End Sub

Falls Du lieber die Inhalte aus der Zelle löschen möchtest,
anstatt eine Null hineinzuschreiben, lautet die Anweisung:

Range"$D$6").ClearContents

Ja, so war das gedacht :smile:
An einer Case-Schleife hatte ich mich auch schon versucht,
hab’s aber nicht hinbekommen.

Vielen Dank, Du hast mir sehr geholfen.

Gruß und ein schönes, langes Wochenende.
Rolf