Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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

Bei Doppelklick mit X füllen über mehrere Bereiche

Bei Doppelklick mit X füllen über mehrere Bereiche
15.04.2015 20:29:47
akruegr
Hallo an Alle die dies lesen,
ich habe bereits eine kleine Prozedur gefunden, die das Thema "eigentlich schon löst:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim bereich As Range
Set bereich = Range("B3:F3")
If Intersect(Target, bereich) Is Nothing Then Exit Sub
Cancel = True
Intersect(Target.EntireRow, bereich) = ""
Select Case Target
Case "": Target = "x"
Case "x": Target = ""
End Select
End Sub

Ich habe allerdings folgende Bereiche, auf die ich Intersect(Target.EntireRow, bereich) = "" getrennt anwenden möchte (natürlich alle in einer Reihe):
Set bereich = Range("B3:E3")
Set bereich2 = Range("F3:I3")
Set bereich3 = Range("J3:M3")
Set bereich4 = Range("N3:Q3")
Set bereich5 = Range("R3:U3")
Diese sind mit Union auch bereits zu einem Gesamtbereich zusammen gefasst. Allerdings klappt das nicht. Ich kann zwar die Bereiche auswählen, aber dann löscht er mir alles über den Gesamtbereich.
Wie kann ich hier eine Trennung hinbekommen (das EntireRow umgehen) und das Doppelklicken für die getrennten horizontalen Bereiche anwenden?
Und wie kann ich das vertikal erweitern? (B3:U12)
Vielen Dank für eventuelle Antworten.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bei Doppelklick mit X füllen über mehrere Bereiche
15.04.2015 22:12:38
Nepumuk
Hallo,
so ok?
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim objRange As Range
    If Not Intersect(Target, Range("B3:E3,F3:I3,J3:M3,N3:Q3,R3:U3")) Is Nothing Then
        Select Case Target.Column
            Case Is <= 5: Set objRange = Range("B3:E3")
            Case Is <= 9: Set objRange = Range("F3:I3")
            Case Is <= 13: Set objRange = Range("J3:M3")
            Case Is <= 17: Set objRange = Range("N3:Q3")
            Case Is <= 21: Set objRange = Range("R3:U3")
        End Select
        objRange.Value = IIf(Target.Value = "X", Empty, "X")
        Set objRange = Nothing
        Cancel = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Bei Doppelklick mit X füllen über mehrere Bereiche
16.04.2015 09:15:38
akruegr
Hallo Nepumuk,
erst einmal vielen Dank für die schnelle und gute Lösung.Hab ich gleich mal ausprobiert. Allerdings werden jetzt bei Doppelklick alle Zellen des Bereiches mit X befüllt. Also nicht nach dem Ausschlußverfahren, dass wenn ein X in einem Bereich vorhanden ist, ein weiteres im Bereich gelöscht wird.
Zuständig dafür ist Intersect(Target.EntireRow, bereich) = "". Mit anderen Worten, ich würde gerne EntireRow auf den Bereich beschränken, bekomme aber bei Änderung immer die Warnmeldung, dies sei nicht "optional". Ansonsten läuft das Original über alle (auch vertikale) Bereiche super. Es hackt nur an diesem Intersect befehl.
Vielen Dank für Deine Hilfe.

Anzeige
Bei Doppelklick mit X füllen über mehrere Bereiche
16.04.2015 09:37:26
Nepumuk
Hallo,
ich hab's immer noch nicht verstanden was du erreichen willst. Wenn ich in B3 einen Doppelklick mache und es steht in B3-E3 X was soll dann passieren? Und geht es nicht nur um die Zeile 3? Das kam nämlich bei deinem Code so rüber.
Gruß
Nepumuk

AW: Bei Doppelklick mit X füllen über mehrere Bereiche
16.04.2015 09:45:38
akruegr
Wow! Du bist sehr schnell!
Das weitere X in B3-E3 soll dann automatisch gelöscht werden, so dass nur ein X in dem Bereich (B3:E3) zugelassen ist. Das wiederum soll für die gesamten 5 Bereiche unabhängig gelten. Also ein zugelassenes X in Bereich B3:E3, ein zugelassenes X in F3:I3, und so fort.
Ich schicke Dir am besten die Datei mal mit, dann kannst Du das mal sehen.
https://www.herber.de/bbs/user/97100.xlsm
Nochmals vielen Dank.

Anzeige
Bei Doppelklick mit X füllen über mehrere Bereiche
16.04.2015 09:58:12
Nepumuk
Hallo,
so?
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("B3:E3,F3:I3,J3:M3,N3:Q3,R3:U3")) Is Nothing Then
        Select Case Target.Column
            Case Is <= 5: Range("B3:E3").Value = Empty
            Case Is <= 9: Range("F3:I3").Value = Empty
            Case Is <= 13: Range("J3:M3").Value = Empty
            Case Is <= 17: Range("N3:Q3").Value = Empty
            Case Is <= 21: Range("R3:U3").Value = Empty
        End Select
        Target.Value = "X"
        Cancel = True
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Bei Doppelklick mit X füllen über mehrere Bereiche
16.04.2015 10:33:41
akruegr
Genau so! Vielen Dank und super gelöst.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige