Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

benutzerdefiniertes Autofilterkriterium auslesen.

Forumthread: benutzerdefiniertes Autofilterkriterium auslesen.

benutzerdefiniertes Autofilterkriterium auslesen.
27.03.2006 15:46:44
th.heinrich
bestes Forum,
folgender code, dank an Jörg.

Private Sub Worksheet_Deactivate()
Dim varKriterium1 As Variant
Application.DisplayAlerts = False
With Worksheets("Auswertung")
If .AutoFilterMode Then
With .AutoFilter.Filters(2)
If .On Then varKriterium1 = .Criteria1
End With
End If
End With
If varKriterium1 <> "" Then Range("h1").Value = varKriterium1 'Anwendungs-, oder objektdefinierter Fehler.
If varKriterium1 = "" Then Range("h1").Value = "Alle"
With Range("h1")
.Replace What:="=", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End With
Application.DisplayAlerts = True
End Sub

fehler ist kommentiert. wer kann weiterhelfen?
danke von thomas
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 17:51:55
bst
Hallo Thomas,
Du brauchst hier .Range, nicht nur Range. "With me" sollte eigentlich auch tun.
cu, Bernd
--
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Deactivate()
    Dim varKriterium1 As Variant
    
    Application.DisplayAlerts = False
    With Worksheets("Auswertung")
        If .AutoFilterMode Then
            With .AutoFilter.Filters(2)
                If .On Then varKriterium1 = .Criteria1
            End With
            
            If varKriterium1 <> "" Then .Range("h1").Value = varKriterium1
            If varKriterium1 = "" Then .Range("h1").Value = "Alle"
            
            With .Range("h1")
                .Replace What:="=", Replacement:="", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False
            End With
        End If
    End With
    Application.DisplayAlerts = True
End Sub

Anzeige
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 18:41:33
th.heinrich
hi Bernd,
erstmal vielen dank fuer Deine reaktion. meine probbeschreibung war zu duerftig. einfaches Kriterium funzzt, aber bei benutzerdefiniert kommt der fehler.
hab die datei mal reingestellt.
https://www.herber.de/bbs/user/32324.xls
gruss thomas
Anzeige
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 19:58:00
Martina
hi Thomas,
versuchs mal so:
... Range("h1").Value = "'" & varKriterium1
MfG
Martina
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 20:50:02
Martina
quatsch
so ist's einfacher:

Private Sub Worksheet_Deactivate()
Dim varKriterium1 As Variant
Application.DisplayAlerts = False
With Worksheets("Auswertung")
If .AutoFilterMode Then
With .AutoFilter.Filters(2)
If .On Then varKriterium1 = .Criteria1
End With
End If
If varKriterium1 <> "" Then .Range("h1").Value = Replace(varKriterium1, "=", "")
If varKriterium1 = "" Then .Range("h1").Value = "Alle"
End With
Application.DisplayAlerts = True
End Sub

MfG
Martina
Anzeige
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 21:34:10
bst
Nochmals Hallo,
bei mir mit xl2000 gibt's keinen Fehler ?
cu, Bernd
@Bernd & Martina und Helfer
28.03.2006 00:40:13
th.heinrich
thx fuer Euer engagement,
ich schildere nochmal das prob: wird nach entspricht gefiltert ist alles roger.
setzt man den Autofilter, z.b. enthält gibts die fehlermeldung Anwendungs-, oder objektdefinierter Fehler.
und H1 wird nicht aktuallisiert.
gruss thomas
Anzeige
AW: @Bernd & Martina und Helfer
28.03.2006 01:41:20
bst
Hallo Thomas,
aha, enthält ist also der Übeltäter :-)
In der Zeile:
If varKriterium1 "" Then .Range("h1").Value = varKriterium1
versucht VBA nun dem Wert von H1 sowas zuzuwesien: =*"1"*
Das mag .Value nun nicht besonders. M.E. die wohl einfachste Lösung hierzu:
If varKriterium1 "" Then .Range("h1").Value = "'" & varKriterium1
cu, Bernd
Anzeige
AW: @Bernd & Martina und Helfer, funzzt
28.03.2006 01:59:49
th.heinrich
sers Bernd,
jetzt ist es ok. Martina hatte es in Ihrem 1. posting auch vorgeschlagen, das 2. funzzt leider nicht.
und ob Du es glaubst oder nicht, aus versehen hatte ich das "'" auch schon eingesetzt, um das = bei der rueckgabe in H1 zu entschaerfen. nur habe ich dabei nicht mit enthält getestet :-(
danke & gruss thomas
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige