Per Makro Autofilter steuern

Bild

Betrifft: Per Makro Autofilter steuern
von: Martin
Geschrieben am: 28.07.2015 17:29:43

Hallo Forum,
ich habe eine Frage zu einem Code, den ich im Internet gefunden habe. In einem Arbeitsblatt funktioniert er reibungslos ("Tabelle 2", eine Kopie vom Sheet "Auftragsbuch") und filtert die Liste nach dem Inhalt in der markierten Zelle, aber in einem anderen Sheet ("Auftragsbuch") springt er 3 Spalten weiter, und ich komm nicht drauf warum. Anmerkung: Ich bin ein quasi VBA-Anfänger und kopiere mir die Codes zusammen (was meistens auch funktioniert, nur hier leider nicht).

Sub RB_aktive_Zelle_filtern()
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
End Sub
Ich wär sehr verbunden wenn mir jemanden eine Lösung dafür liefern kann.
Hier ist der Link zur Datei: https://www.herber.de/bbs/user/99128.xls
Ciao Martin

Bild

Betrifft: AW: Per Makro Autofilter steuern
von: Sepp
Geschrieben am: 28.07.2015 17:48:33
Hallo Martin,
dein Filterbereich beginnt erst in Spalte C darum der Versatz, außerdem hast du Leerzeilen im Filterbereich. Leerzeilen haben in einer Liste nichts zu suchen! Du setzt den Filter auch nicht auf die Überschriftenzeile, sondern auf die erste Datenzeile, viel mehr kann man bei einer Tabelle nicht falsch machen. Und dann wundern sich die Leute, wenn die einfachsten Dinge nicht laufen.

Gruß Sepp


Bild

Betrifft: AW: Per Makro Autofilter steuern
von: Martin
Geschrieben am: 29.07.2015 06:39:47
Danke Sepp das war das Problem, jetzt funktinoerts! Wir können leider nicht alle Experten sein. ;-)
Was da am Code am Code falsch ist, rein interessenshalber kannst du mir auch noch verraten?
Ciao Martin

Bild

Betrifft: AW: Per Makro Autofilter steuern
von: Sepp
Geschrieben am: 29.07.2015 09:56:33
Hallo Martin,
am Code an sich war nichts falsch, nur wurde davon ausgegangen, dass die Liste in Spalte A beginnt.
Ich würde das ganze per Doppelklick steuern.

' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C6").CurrentRegion) Is Nothing Then
  Cancel = True
  If Me.AutoFilter.Filters(Target(1, 1).Column).On Then
    Target.CurrentRegion.AutoFilter Field:=Target(1, 1).Column
  Else
    Target.CurrentRegion.AutoFilter Field:=Target(1, 1).Column, Criteria1:=Target, Operator:=xlAnd
  End If
End If
End Sub


Der Code kommt in das Modul der Tabelle. Mit einem Doppelklick auf einen Eintrag, wird der Filter in der entsprechenden Spalte gesetzt oder aufgehoben.
Gruß Sepp


Bild

Betrifft: AW: Per Makro Autofilter steuern
von: Martin
Geschrieben am: 29.07.2015 18:19:06
Hallo Sepp,
Besten Dank für deinen konstruktiven Input, das ist eine wirklich elegante Lösung!
Ciao Martin

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Per Makro Autofilter steuern"