HERBERS Excel-Forum - das Archiv

Thema: Bei Doppelklick in Zelle/Spalte Autofiltern | Herbers Excel-Forum

Bei Doppelklick in Zelle/Spalte Autofiltern
Doppelklicker

Hallo liebe Excelgemeinde,
ich hätte ein kleines Attentat auf euch vor.
ich wünsche mir von euch den VB-Quellcode für die Lösung des nachfolgenden Wunsches:
ich möchte das per Doppelklick auf einer Zelle in Spalte B des Excelblattes "Auftrag" (gibt mehrere Blätter in der Datei, jedoch soll dies nur in diesen Blatt ausgeführt werden)
eine Userabfrage nach einer Zahl erfolgt
>>>> "Usereingabe = InputBox("Maximale Wert?", "Suche nach", 1, vbOKCancel)"
und dann ein Autofilter über den Bereich A2:J2 erfolgen.
>>> "Range("A2:J2").Select"
dieser Autofilter soll dann für Spalte J nur die Datensätze mit X filtern.
>>> "Selection.AutoFilter Field:=10, Criteria1:="x""
und für Spalte B soll alles angezeigt werden, was kleiner oder gleich der Usereingabe ist.
>>> "AutoFilter Field:=4, Criteria1:="<=" & Usereingabe, Operator:=xlAnd"
Doppelklickt man in eine Zelle der Spalte C, soll selbiges Makro ausgeführt werden, nur dass dann
der Autofilter verschwindet und neu aufgebaut wird mit selbiger Funktion wie für Spalte B nur dann halt für Spalte C (incl. den vorfilter für Spalte J) erfolgt.
Angefangen und bischen aufgezeichnet hab ich folgendes (aber ist halt fehlerhaft und noch sicherlich nicht optimiert)
Stolperstein war auch immer mal der Autofilter (mal gesetzt, mal nicht gesetzt, mal nicht vorhanden)
So wer kann mir nun helfen und das Ding mal korrigieren/optimieren?
Versuch:

Private Sub Workbook_Open()
DoppelklickerAktiv
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Sub DoppelklickerAktiv()
Sheets("Auftrag").OnDoubleClick = "Doppelklicker"
End Sub

Sub Doppelklicker()
Set MyShell = CreateObject("WScript.Shell")
Usereingabe = InputBox("Maximaler Wert?", "Suche nach", 1, vbOKCancel)
If ActiveSheet.Name = "Aufträge" Then
Select Case Target.Column
Case 2
Range("A2:J2").Select
Selection.AutoFilter
Selection.AutoFilter Field:=9, Criteria1:="x"
Selection.AutoFilter Field:=4, Criteria1:="<=" & Usereingabe, Operator:=xlAnd
Exit Sub
Case Else
Exit Sub
End Select
End If
End Sub

AW: Bei Doppelklick in Zelle/Spalte Autofiltern
fcs

Hallo Doppelklicker,
das folgende Makro im VBA-Editor unter der Tabelle "Auftrag" einfügen.
Gruß
Franz
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim wks As Worksheet, Usereingabe
Set wks = Me
Select Case Target.Column
Case 2, 3 'Autofilter ausführen bei Doppelklick in Spalten B oder C
With wks
'prüfen ob Autofilter gesetzt und ggf. alle Daten anzeigen
If .FilterMode = True Then
.ShowAllData
End If
Usereingabe = InputBox("Maximaler Wert?", "Suche nach", 1, vbOKCancel)
If Usereingabe <> "" Then
Cancel = True 'Zelle nicht zum Bearbeiten selektieren
'Filterbereich A2:Jxxx
With .Range(.Cells(2, 1), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 10))
.AutoFilter 'schaltet ggf. einen vorhandenen Autofilter aus
'Autofilter neu aufbauen
.AutoFilter Field:=10, Criteria1:="x" 'Spalte J filtern
.AutoFilter Field:=Target.Column, Criteria1:="<=" & Usereingabe 'Target-Spalte  _
filtern
End With
End If
End With
Case Else
'do nothing
End Select
End Sub