Clever-Excel-Forum

Normale Version: Wert bei mehreren markieren Zellen automatisch eintragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin seit mehreren Tagen erfolglos online auf der Suche nach einer VBA-Lösung für folgendes Problem:

Ich habe in einem Arbeitsblatt mehrere Zellen, bei denen ein bestimmter Wert bei einem Klick eingetragen wird. Sobald ich eine Zelle anwähle/markiere, soll der Wert "JA" eingetragen werden, bei erneuter Auswahl soll die Zelle wieder den Wert "NEIN" annehmen. Dafür habe ich folgenden Code eingesetzt (-> online gefunden und entsprechend für mich angepasst):


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("C3:I782")) Is Nothing _
And Target.Count = 1 Then
If Target.Value = "JA" Then
Target.Value = "NEIN"
Else: Target.Value = "JA"
End If
End If
End Sub


Nun möchte ich aber, dass sich der Wert von "JA" -> "NEIN" bzw. "NEIN" -> "JA" ändert, wenn ich mehrere Zellen gleichzeitig markiere. Ich möchte beispielsweise die Zellen C3:I3 mit dem Wert "Nein" zusammen zu "JA" ändern, indem ich Zelle C3 anklicke und per Maus den Bereich bis I3 ziehe.
Dafür reichen leider weder meine VBA-Kenntnisse aus, noch finde ich dazu eine Lösung im Netz.

Hat hierfür jemand eine Idee?

Vielen Dank und liebe Grüße
HooleWooh
Hallo,

wird mit diesem Makro nicht funktionieren. Man kann so etwas auch kaputt optimieren.
Hallo Klaus Dieter,

das habe ich mir schon gedacht. Wie müsste aber ein (anderes) Marko aussehen, mit dem ich die gewünschte Funktion zusätzlich zum bestehenden Makro realisieren könnte?

Mir geht es explizit darum, wie die Definition für den Befehl "Zwei-bis-X-Zellen-mit-Wert-belegen" aussehen müsste. Aktuell kann ich nur 1 einzige Zelle ändern.

MfG
HooleWooh
Hallo,

du hast es hier mit einer sogenannten Ereignisprozedur zu tun, die sofort reagiert, wenn eine Zelle angeklickt wird. Somit wird sich das mit einer Mehrfachselektion kaum verbinden lassen.
Hallo HooleWooh,

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Range("C3:I782")) Is Nothing Then
    Target.Value = IIf(Target.Cells(1).Value = "JA", "NEIN", "JA")
  End If
End Sub

Gruß Uwe
Hi

Versuch es so.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim j

If Not Intersect(Target, Range("C3:I782")) Is Nothing Then
For Each j In Target.Cells
   If j.Value = "JA" Then
      j.Value = "NEIN"
   Else
      j.Value = "JA"
   End If
Next j
End If
End Sub
Gruß Elex
(13.12.2021, 11:25)Kuwer schrieb: [ -> ]Hallo HooleWooh,

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Target, Range("C3:I782")) Is Nothing Then
    Target.Value = IIf(Target.Cells(1).Value = "JA", "NEIN", "JA")
  End If
End Sub

Gruß Uwe

Hallo Uwe,

es funktioniert wunderbar! Tausend Dank für die Hilfe!

MfG
HooleWooh

(13.12.2021, 11:27)Elex schrieb: [ -> ]Hi

Versuch es so.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim j

If Not Intersect(Target, Range("C3:I782")) Is Nothing Then
For Each j In Target.Cells
   If j.Value = "JA" Then
      j.Value = "NEIN"
   Else
      j.Value = "JA"
   End If
Next j
End If
End Sub
Gruß Elex

Hallo Elex,

der Code funktioniert genau so, wie ich es mir vorgestellt hatte. Vielen lieben Dank!

MfG
HooleWooh