HERBERS Excel-Forum - das Archiv

Thema: Filter per VBA auf Pivot setzen, bei Doppelklick auf Zelle

Filter per VBA auf Pivot setzen, bei Doppelklick auf Zelle
Benj_amin
Hallo!

Ich möchte gerne ein VBA-Modul ausführen, wenn innerhalb eines bestimmten Bereichs auf einer Zelle ein Doppelklick ausgeführt wird.

Das funktioniert auf eine einzelne Zelle auch ganz gut:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

If Target.Address = "$A$5" Then
KontenFilter Range("A5")
End If
End Sub


Wie schaffe ich es, dass der Doppelklick für alle Zellen im Bereich A5:A40 funktioniert und für das auszuführende Maktro KontenFilter, der entsprechende Zelleninhalt der Zelle, auf die der Doppelklick ausgeführt wurde, übergeben wird?

Für jede Zelle einen eigenen Code zu schreiben wäre etwas mühselig.

Vielen Dank für eure Hilfe und viele Grüße!

Benjamin
AW: Filter per VBA auf Pivot setzen, bei Doppelklick auf Zelle
peter
Hallo



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Intersect (Target, Range("A5:A50")) Then
KontenFilter Target
End If
End Sub


Peter
AW: Hab einen Fehler gemacht
peter
Hallo

Not Application.Intersect(Target, rgForbidden) Is Nothing



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect (Target, Range("A5:A50")) Is Nothing Then
KontenFilter Target
End If
End Sub
AW: Hab einen Fehler gemacht
Benj_amin
Hallo Peter,

vielen Dank für deine schnelle Hilfe!!!

Meintest du so, nach der Korrektur:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

If Not Application.Intersect(Target, Range("A5:A83")) Is Nothing Then
KontenFilter Target
End If
End Sub


Ich erhalte folgenden Fehler:
Fehler beim Kompilieren:
Argumenttyp byRef unverträglich

Erscheint bei KontenFilter Target

Was habe ich falsch gemacht?

Viele Grüße!
AW: Hab einen Fehler gemacht
peter
Hallo

Liegt an der Definition von KontenFilter, sprich hier solltest Du den Range ByVal übergeben , oder Du zeigst uns Deine Sub.

Peter

P.S: Nach dem Aufruf Deiner Sub solltest Du noch Cancel=True einfügen.

Peter
AW: Hab einen Fehler gemacht
Benj_amin
Die Übergabe an mein Makro war tatsächlich falsch. Das war der entscheidende Hinweis.

Jetzt funktioniert es:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)

If Not Application.Intersect(Target, Range("A5:A83")) Is Nothing Then
KontenFilter Target, Range("D2"), Range("E2")
Cancel = True
End If
End Sub


Vielen vielen Dank Peter und einen schönen Abend!