2.1k Aufrufe
Gefragt in Tabellenkalkulation von tech07 Einsteiger_in (37 Punkte)
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

[code]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

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
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.
0 Punkte
Beantwortet von tech07 Einsteiger_in (37 Punkte)
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
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
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.
0 Punkte
Beantwortet von tech07 Einsteiger_in (37 Punkte)
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
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Julia,

irgendjemand hat mal gesagt:

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.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
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.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

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

gruss nighty
...