Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Doppelklick Event in jeder 2. Zelle

Doppelklick Event in jeder 2. Zelle
11.03.2021 13:31:56
Simon
Hallo,
ich versuche gerade VBA zu verstehen, bisher leider nur mit mäßigem Erfolg, daher folgendes Problem:
ich möchte, dass bei Doppelklick auf eine Zelle in einer bestimmten Spalte zwischen zwei Werten _ umgeschaltet wird. In diesem Fall Wäre das Sieg/Niederlage. Das habe ich auch soweit hinbekommen, allerdings soll das Ganze nur in jeder zweiten Zelle (gerade Werte) der Spalte geschehen. Aus dem Internet konnte ich mir diesen Code zusammenschustern. Leider wird das mit den geraden Werte komplett ignoriert und ich kann weiterhin in der ganzen Spalte per Doppelklick die Werte togglen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Zeile As Long
With Sheet1
For Zeile = 2 To .UsedRange.Rows.Count
If Target.Column = 8 And Zeile Mod 2 = 0 Then
Target.Value = IIf(Target.Value = "Win", "Lose", "Win")
Cancel = True
End If
Next Zeile
End With
End Sub
Hintergrund ist folgender: Ich habe einzelne Blöcke bestehend aus einer Überschriftszeile gefolgt von zwei bis 4,6, 8 oder ... Zeilen-Zweierblöcken mit Daten in denen in der einen Zeile Win und in der anderen dann abhängig von der ersten Lose steht (oder, wenn durch Doppelklick die erste Zeile zu Lose wird, andersherum).
Diese Blöcke werden nun per Klick auf einen Button in einer UserForm kopiert und mit einer Zeile Abstand untereinander gefügt. Ich möchte, dass in den Blöcken an der richtigen Stelle, also direkt unter der Überschriftszeile und dann in jeder zweiten Zelle bis zum Ende des Blocks zwischen Win/Lose gewechselt werden kann, sodass sich die jeweilig darunter befindende Zelle auf dieses Wort Bezug nehmen kann und sich dann das Gegenteil annimmt.
Würde mein Code von oben funktionieren, würden zwar auch die Leerzeilen zwischen den Blöcken mitumfasst, solange man da aber nicht doppelklickt, sollte das kein Problem sein.
Ursprünglich hatte ich das DoppelklickEvent nur bezogen auf eine Absolute Zelle und wollte den VBA Code, der sich auf diese Zelle bezieht wie eine in der Zelle selbst hinterlegte Formel mit kopieren. Da das aber meines Wissens nicht möglich ist, meine andere "Lösung"
Nun zu meiner Frage: Könnte man den obigen Code so modifizieren, dass er funktioniert oder (Falls man den Hintergrund verstehen konnte) gibt es sogar eine bessere Lösung für mein Problem.
Ich hoffe das war nicht allzu unverständlich. Falls es unbedingt nötig ist, kann ich auch eine Datei hochladen. Schonmal vielen Dank für Lösungsversuche
Grüße Simon

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 13:47:30
Nepumuk
Hallo Simon,
zu kompliziert gedacht. Einfach so:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 8 And Target.Row Mod 2 = 0 Then
        Target.Value = IIf(Target.Value = "Win", "Lose", "Win")
        Cancel = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 16:13:30
Simon
Vielen Dank, funktioniert super! Da hatte ich es ja sogar fast richtig gemacht :D
Gruß
Simon

AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 13:47:56
peterk
Hallo

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 8 And (Target.Row Mod 2) = 0 Then
Target.Value = IIf(Target.Value = "Win", "Lose", "Win")
Cancel = True
End If
End Sub


Anzeige
AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 16:14:44
Simon
Vielen Dank, funktioniert einwandfrei!

AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 13:49:40
Rudi
Hallo,
so?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 8 And Target.Row Mod 2 = 0 Then
Target.Value = IIf(Target.Value = "Win", "Lose", "Win")
End If
Cancel = True
End Sub

Gruß
Rudi

Anzeige
AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 16:20:43
Simon
Hallo,
Vielen Dank für die Lösung! Leider kann ich aber das restliche Tabellenblatt nicht mehr bearbeiten. Wenn ich aber "End IF" und "Cancel = True" vertausche, funktioniert es super. Vielen Dank!
Gruß
Simon

AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 14:00:03
ChrisL
Hi Simon
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 8 Then
Target.Value = IIf(Target.Value = "Win", "Lose", "Win")
If Target.Row Mod 2 Then
Target.Offset(-1, 0) = IIf(Target.Value = "Win", "Lose", "Win")
Else
Target.Offset(1, 0) = IIf(Target.Value = "Win", "Lose", "Win")
End If
Cancel = True
End If
End Sub
cu
Chris

Anzeige
AW: Doppelklick Event in jeder 2. Zelle
11.03.2021 16:24:10
Simon
Hi Chris,
Vielen Dank für deine Lösung! Da spar ich mir sogar noch eine Formel, super!
Gruß
Simon
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige