Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrere Worksheet_BeforeDoubleClick in einem Tabelle

Mehrere Worksheet_BeforeDoubleClick in einem Tabelle
03.02.2020 12:57:43
Manuelsen17
Hallo liebes Forum,
folgendes Problem schaffe ich persönliche nicht zu lösen.
Der folgende Code muss so modifiziert werden, dass er für die folgenden Bereiche ebenso funktioniert. Leider habe ich keine Idee dafür.
Kurzer Hintergrund: Das Anklicken der Zellen soll als Antwort für einen Fragebogen ausgewertet werden. Dabei soll in dem jeweiligen Bereich immer nur eine Antwort möglich sein.
Ich hoffe jemand kann mich bei der Lösung unterstützen.
Vielen Dank.
Gruß Manu
Bereiche für RaBereiche: F17:J17 , F24:J24 , F31:J31 , F38:J38 , F45:J45 , F52:J52 , F59:J59 , F66:J66 , F73:J73 , F80:J80 , F87:J87 , F94:J94
jeweils dazu zugeordnetes Prüfkriterium steht in: B14, B21, B28, B35, B42 usw.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RaBereich As Range                          ' Variable Zelle
Dim Anzahl As Integer
Set RaBereich = Range("F17:J17") ' Bereich der Wirksamkeit
Anzahl = Range("B14")
If Anzahl = 0 Then
If Not Intersect(Target, RaBereich) Is Nothing Then
Application.EnableEvents = False            ' Reaktion auf Zellveränderung ausschalten
Cancel = True                               ' damit Cursor nicht in Zelle nach  _
Doppelklick
If Target.Value = "r" Then
Target.Value = ""                       ' falls Zellinhalt X, Zelle leeren
Else
Target.Value = "r"                      ' falls Zelle leer, X eintragen
End If
Application.EnableEvents = True             ' Reaktion auf Zellveränderunge einschalten
Set RaBereich = Nothing                     ' Variable leeren
End If
Else
Range("F17:J17").ClearContents
If Not Intersect(Target, RaBereich) Is Nothing Then
Application.EnableEvents = False            ' Reaktion auf Zellveränderung ausschalten
Cancel = True                               ' damit Cursor nicht in Zelle nach  _
Doppelklick
If Target.Value = "r" Then
Target.Value = ""                       ' falls Zellinhalt X, Zelle leeren
Else
Target.Value = "r"                      ' falls Zelle leer, X eintragen
End If
Application.EnableEvents = True             ' Reaktion auf Zellveränderunge einschalten
Set RaBereich = Nothing                     ' Variable leeren
End If
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Worksheet_BeforeDoubleClick in einem Tabelle
03.02.2020 13:19:54
Nepumuk
Hallo Manu,
so?
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim RaBereich As Range ' Variable Zelle
    
    Set RaBereich = Range("F17:J17,F24:J24,F31:J31,F38:J38,F45:J45,F52:J52," & _
        "F59:J59,F66:J66,F73:J73,F80:J80,F87:J87,F94:J94") ' Bereich der Wirksamkeit
    
    If Range("B14").Value <> 0 Then Call RaBereich.ClearContents
    
    If Not Intersect(Target, RaBereich) Is Nothing Then
        
        Application.EnableEvents = False ' Reaktion auf Zellveränderung ausschalten
        
        Cancel = True ' damit Cursor nicht in Zelle nach Doppelklick
        
        If Target.Value = "r" Then
            Target.Value = Empty ' falls Zellinhalt X, Zelle leeren
        Else
            Target.Value = "r" ' falls Zelle leer, X eintragen
        End If
        
        Application.EnableEvents = True ' Reaktion auf Zellveränderunge einschalten
        
    End If
    
    Set RaBereich = Nothing ' Variable leeren
    
End Sub

Gruß
Nepumuk
Anzeige
AW: Mehrere Worksheet_BeforeDoubleClick in einem Tabelle
03.02.2020 13:20:58
Rudi
Hallo,
anderer Ansatz:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim tmp
On Error GoTo ERREXIT
Application.EnableEvents = False
tmp = Target
Select Case Target.Column
Case 6 To 10    'F:J
Select Case Target.Row
Case 17, 24, 31, 38, 45, 52, 59, 66, 73, 80, 87, 94
Cancel = True
Cells(Target.Row, 6).Resize(, 5).ClearContents
If tmp = "" Then Target = "r"
End Select
End Select
ERREXIT:
Application.EnableEvents = True
End Sub

Gruß
Rudi
AW: Mehrere Worksheet_BeforeDoubleClick in einem Tabelle
03.02.2020 13:50:21
Manuelsen17
Super, der Code funktioniert einwandfrei. Danke für die schnelle Hilfe!
Anzeige

261 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige