Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

benutzerdefiniertes Autofilterkriterium auslesen.

benutzerdefiniertes Autofilterkriterium auslesen.
27.03.2006 13: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

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

Betreff
Datum
Anwender
Anzeige
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 15: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 16: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
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 17:58:00
Martina
hi Thomas,
versuchs mal so:
... Range("h1").Value = "'" & varKriterium1
MfG
Martina
AW: benutzerdefiniertes Autofilterkriterium ausles
27.03.2006 18: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 19:34:10
bst
Nochmals Hallo,
bei mir mit xl2000 gibt's keinen Fehler ?
cu, Bernd
@Bernd & Martina und Helfer
27.03.2006 22: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
AW: @Bernd & Martina und Helfer
27.03.2006 23: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
27.03.2006 23: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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige