online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Tech07 vom 23.06.2022, 19:58 Options

Lösung

X in Spalte Ja oder Nein

Hallo zusammen,

ich habe eine Ja-Spalte und eine Nein-Spalte mit ständig veränderbaren Anzahl von Zeilen. Wenn ich einen Doppelklick in die Spalte "JA" mache erscheint ein X jedoch auch in Spalte "Nein".

Ich möchte aber bei einem Doppelklick in Spalte Ja ein X und Spalte NEIN soll leer bleiben und umgekehrt.
Ich habe folgenden Code, der mir bei einem Doppelklick ein X in das gewünschte Feld setzt.
Es soll das X aber nur in den Spalten Ja oder Nein setzten und auf dem restlichen Tabellenblatt soll der Doppelklick nicht funktionieren

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target.Value = "X"
End Sub

Kann mir bitte jemand helfen.
Danke im Voraus
Mfg Julia


Antwort schreiben

Antwort 1 von M.O. vom 23.06.2022, 20:27 Options

Hallo Julia,

versuch es mal mit dem folgenden Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Or Target.Column = 2 Then Target.Value = "X"
End Sub


Hier funktioniert der Doppelklick nur in den Spalten A und B. Den Code musst du natürlich auf deine Verhältnisse anpassen.

Gruß

M.O.

Antwort 2 von Tech07 vom 23.06.2022, 21:33 Options

Hallo M.O.

funktioniert soweit ganz gut, jedoch kann ich in beiden Spalten gleichzeitig das X setzten. Es soll aber nur in der Ja- oder Nein-Spalte ein X stehen, die Spalte die ich nicht anklicke soll leer bleiben.
Vielleicht hast Du dafür auch eine Antwort parat. ;-)

Gruß Julia

Antwort 3 von M.O. vom 24.06.2022, 08:48 Options

Hallo Julia,

probier mal den folgenden Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Or Target.Column = 2 Then
 Cells(Target.Row, 1).Clear
 Cells(Target.Row, 2).Clear
 Target.Value = "X"
End If
 
End Sub


Den Code musst du natürlich noch entsprechend anpassen.

Gruß

M.O.

Antwort 4 von Tech07 vom 24.06.2022, 09:54 Options

Hallo M.O.

sorry, habe ich vergessen zu erwähnen, dass die Zellen in denen das X stehen soll verbundene Zellen sind. Ich bekomme daher einen Laufzeitfehler 1004 "Kann Teil einer verbunden Zelle nicht ändern".
Gibt es noch Möglichkeiten/Code die beiden Zellen vor Eingabe des X zu leeren?

Grüße Julia

Antwort 5 von M.O. vom 24.06.2022, 10:28 Options

Hallo Julia,

irgendjemand hat mal gesagt:

Zitat:
Verbundene Zellen sind der natürliche Feind der VBA-Programmierung


Also überleg mal, ob die verbundenen Zellen wirklich notwendig sind.

Wenn du den Inhalt von verbundenen Zellen löschen willst, musst du beide Zellen ansprechen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Or Target.Column = 2 Then
 Range(Cells(Target.Row, 1),Cells(Target.Row,2)).Clear
 Range(Cells(Target.Row, 3),Cells(Target.Row,4)).Clear
 Target.Value = "X"
End If
 
End Sub


Gruß

M.O.

Antwort 6 von M.O. vom 24.06.2022, 10:46 Options

Hallo Julia,

habe gerade festgestellt, dass mit der Anwendung von Clear auch die verbundenen Zellen wieder aufgeteilt werden.

Nimm stattdessen ClearContents

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Target.Column = 1 Or Target.Column = 2 Then
 Range(Cells(Target.Row, 1),Cells(Target.Row,2)).ClearContents
 Range(Cells(Target.Row, 3),Cells(Target.Row,4)).ClearContents
 Target.Value = "X"
End If
End Sub


Gruß
M.O.

Antwort 7 von nighty vom 24.06.2022, 17:55 OptionsLösung

Lösung
hi all :-)

statt eines x koennte man auch den geforderten bereich wingdings formatieren und das haeckchen benutzen das mit ü errreichbar waere

gruss nighty

Ähnliche Themen

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026