Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

vom User gesetzten Filter mit Makro erkennen

vom User gesetzten Filter mit Makro erkennen
14.12.2003 14:25:10
Rudi
Hallo,

weiß jemand wie ich im Makro einlesen kann ob ein Filter z.B. in Spalte A gesetzt wurde ? Und wenn ja: Kann man dann einlesen WELCHER Filter gesetzt wurde ?

Dies soll halt später als Überschrift in einem Diagramm erscheinen.

Noch einen schönen 3. Advent und vielen Dank für die Hilfe,
Rüdiger

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 15:43:41
K.Rola
Hallo,

"Kann man dann einlesen WELCHER Filter gesetzt wurde ?"

Ja, aber was willst du da wissen, Kriterium1, ggf,Operator,
ggf. Kriterium2?

Können mehrere Filter gesetzt sein?

Gruß K.Rola
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 16:07:42
Rudi
Hallo K.,

ähhm, ich glaube das was ich suche ist kriterium1 aber ich weiß es nicht genau. Ich beschreib mal was ich meine:

Wenn ich in Spalte A in den Zeilen 1-5 folgendes eingebe:
A
B
C
D
E

und dann als User einen Autofilter setze.
Dann hat der User zur Auswahl:

(Alle)
(Top 10)
(Benutzerdefiniert)
A
B
C
D
E
(Leere)
(Nichtleere)

Normalerweise ist ja "Alle" gesetzt.
Ich möchte mit dem Makro nun erkennen, ob noch "Alle" gesetzt ist, oder ob der User vielleicht "A" ausgefiltert hat. Dann möchte ich "A" als String o.ä. haben.

Hoffe du verstehst nun was ich meine.

Ach so, es können auch in 2 oder 3 Spalten Filter gesetzt sein.
Ich will dann mit dem Makro hinterher nachschauen in welcher Spalte welcher Filter gesetzt wurde.

Viele Grüßße
Rüdiger
Anzeige
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 16:14:09
K.Rola
Hallo,

alles klar, nur muss ich noch wissen, wie die Ausgabe
des/der Ergebnisse erfolgen soll?

Gruß K.Rola
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 16:27:04
Rudi
Hallo,

das Ergenis soll dann am besten als String vorliegen.
Z.B. wenn
Spalte A - Filter "A"
Spalte B - Filter "2"
Spalte C - Filter "(alle)"
dann möchte ich hinterher einen String haben, der so aussieht:
"A 2", das definiere ich dann noch als Überschrift für ein Diagramm, das auf einem anderen Sheet steht und mit dem Makro generiert wird.

Ist deine Frage damit beantwortet ?

Gruss
Rüdiger
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 16:34:41
K.Rola
Hallo,

wo soll ich denn in meinem Codebeispiel den String hinschreiben,
Msgbox, in irgendeine Zelle?

Gruß K.Rola
Anzeige
AW: vom User gesetzten Filter mit Makro erkennen
14.12.2003 16:53:54
Rudi
in eine Zelle ist okay.
Nein halt !
14.12.2003 16:58:17
Rudi
Nicht in eine Zelle, sondern lieber einer variablen zuweisen z.b.
mit dem namen "Filter":

dim filter as string
AW: Nein halt !
14.12.2003 18:02:11
K.Rola
Hallo,

das sind doch mehrere Informationen, die da ausgelesen werden, die sollen alle
in einen String?

Na gut, der Code gehört in ein Standardmodul:

Option Explicit

Private Function Opera(Op As Long) As String
Dim arr As Variant
arr = Array("kein Operator", "und", "oder", "obersten Einträge", "untersten Einträge", "obersten Prozent", "untersten Pozent")
Opera = arr(Op)
End Function


Private Function FSpalte(sp As Integer) As String
If sp < 27 Then
FSpalte = Left(Columns(sp).Address(0, 0), 1)
Else
FSpalte = Left(Columns(sp).Address(0, 0), 2)
End If
End Function

Sub Autofilter_auslesen()
Dim strFilter As String
Dim varKrit1 As Variant, F As Integer, AnzF As Integer
Dim varKrit2 As Variant, lngOp As Long, aSh As Worksheet
Set aSh = ActiveSheet
If aSh.AutoFilterMode Then
AnzF = aSh.AutoFilter.Filters.Count
If AnzF = 0 Then Exit Sub
For F = 1 To AnzF
If aSh.AutoFilter.Filters(F).On Then
On Error Resume Next
varKrit1 = aSh.AutoFilter.Filters(F).Criteria1
lngOp = aSh.AutoFilter.Filters(F).Operator
varKrit2 = aSh.AutoFilter.Filters(F).Criteria2
If varKrit2 = "" Then varKrit2 = "kein Kriterium"
strFilter = "Spalte: " & FSpalte(F) & ", " & _
"Kriterium 1: " & varKrit1 & ", " & _
"Operator: " & Opera(lngOp) & ", " & _
"Kriterium 2: " & varKrit2
End If
Next
End If
MsgBox strFilter
End Sub

Anzeige
Spitze, funktioniert, aber...(kleine Frage)
14.12.2003 18:51:22
Rudi
Also ersteinmal vielen vielen Dank für deine Hilfe.
Es funktioniert, ich bin begeistert.
Noch eine kurze Frage.
Ich habe aus der Definiton von strFilter die Ergänzungen wie "Kriterium 1" und den Operator herausgenommen. (siehe unten)
Es kommt als Ergebnis aber nun noch ein "=A"
Wie kriege ich das heraus ?
Wird das im Array oder im String gebildet ?

Wäre nett, wenn du mir auch das noch beantworten könntest. :-))

Gruss Rüdiger

Dim strFilter As String
Dim varKrit1 As Variant, F As Integer, AnzF As Integer
Dim varKrit2 As Variant, lngOp As Long, aSh As Worksheet

Set aSh = ActiveSheet
If aSh.AutoFilterMode Then
AnzF = aSh.AutoFilter.Filters.Count
If AnzF = 0 Then Exit Sub
For F = 1 To AnzF
If aSh.AutoFilter.Filters(F).On Then
On Error Resume Next
varKrit1 = aSh.AutoFilter.Filters(F).Criteria1
lngOp = aSh.AutoFilter.Filters(F).Operator
varKrit2 = aSh.AutoFilter.Filters(F).Criteria2
strFilter = " " & _
" " & varKrit1 & ", " & _
"" & _
" " & varKrit2

End If
Next
End If
MsgBox strFilter
Anzeige
AW: Spitze, funktioniert, aber...(kleine Frage)
14.12.2003 18:57:04
K.Rola
Hallo,

Bahnhof???? Was willst du denn ausgeben?

Gruß K.Rola
AW: Spitze, funktioniert, aber...(kleine Frage)
14.12.2003 19:10:16
Rudi
Naja ich möchte NUR das ausgeben, wonach gefiltert wurde.
Wenn in Sp. A nach "A" gefiltert wurde soll in dem String halt nur "A" stehen.
Wenn zusätzlich in Sp. B nach "3" gefiltert wurde, soll halt nur "A 3" drinstehen.
Im Moment wird aber "=A =3" ausgegeben.

Und die = Zeichen sollen weg, weil der String in der Überschrift eines Diagrammes steht und da sehen die = Zeichen irgendwie doof aus.

Gruss
Rüdiger

Hoffe kein Bahnhof mehr...?!
AW: Spitze, funktioniert, aber...(kleine Frage)
14.12.2003 21:27:33
K.Rola
Hallo,

das ist dann nicht mehr ganz so einfach. Ich versuchs aber mal.

Gruß K.Rola
Anzeige
AW: Spitze, funktioniert, aber...(kleine Frage)
14.12.2003 22:32:12
K.Rola
Hallo,

Excel liefert das Krierium mit Operator, da hab ich keine Lust weiter
dran rumzubasteln.

Gruß K.Rola

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige