Wert bei mehreren markieren Zellen automatisch eintragen
#1
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
Antworten Top
#2
Hallo,

wird mit diesem Makro nicht funktionieren. Man kann so etwas auch kaputt optimieren.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • HooleWooh
Antworten Top
#3
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
Antworten Top
#4
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
(13.12.2021, 12: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, 12: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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste