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

VBA-Script nach AutoFilter Aufrufen

VBA-Script nach AutoFilter Aufrufen
04.04.2005 13:13:41
Markus
Hallo Zusammen,
ich möchte nach dem Auswälen eines AutoFilters eine VBA Funktion aufrufen.
Wie kann ich dies machen?
Bei Änderungen am Sheet kann ich die folgende Funktionn verwenden:
Private Sub Worksheet_SelectionChange()...
Leider hat die Auswahl des AutoFilters keinen Aufruf dieser Funktion zur folge...
Danke.
Markus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Script nach AutoFilter Aufrufen
04.04.2005 13:21:47
Boris
Hi Markus,
theoretisch kannst du dafür das Calculate-Ereignis nutzen (mit Hilfe der irgendwo hinterlegten Funktion ZUFALLSZAHL() ), indem du bei jeder Berechnung den Status der einzelnen Filter des Filterobjektes überprüfst.
Schwierigkeit dabei, dass das Calculate-Ereignis bei jeder beliebigen Aktion ausgelöst wird (z.B. normale Zelleingabe), du ja dein makro aber nur aufrufen möchtest, wenn ein Filter geändert wurde. Hat zur Folge, dass man die Filterstati irgendwo zwischenspeichern muss (z.B. in einer globalen Arrayvariablen).
Lange Rede kurzer Sinn: Bei "Kaum Excel/VBA-Kenntnisse" ein nicht zu empfehlendes Unterfangen.
Schilder doch mal den Hintergrund deiner Anfrage - vielleicht gibt´s ja ne andere Lösung.
Grüße Boris
Anzeige
AW: VBA-Script nach AutoFilter Aufrufen
04.04.2005 14:35:04
Markus
Hallo Boris,
Danke! Die Idee mit der Zufallszahl-Funktion hat mir schon sehr geholfen.
Ich verwende nun die folgende Funktion um nach dem Auswählen im AutoFilter
immer einen zusätzlichen Wert mit hinzuzufügen.
Gruß
Markus

Private Sub Worksheet_Calculate()
Set w = Worksheets("Tabelle1")
With w.AutoFilter
currentFiltRange = .Range.Address
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
filterArray(f, 1) = .Criteria1
If .Operator Then
filterArray(f, 2) = .Operator
filterArray(f, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
If Len(filterArray(5, 1)) > 0 Then
If Len(filterArray(5, 3)) = 0 Then
Selection.AutoFilter field:=5, Criteria1:=filterArray(5, 1), Operator:=xlOr, _
Criteria2:="=ALL"
End If
End If
If Len(filterArray(6, 1)) > 0 Then
If Len(filterArray(6, 3)) = 0 Then
Selection.AutoFilter field:=6, Criteria1:=filterArray(6, 1), Operator:=xlOr, _
Criteria2:="=ALL"
End If
End If
End Sub

Anzeige
Viell. solltest du künftig nicht so tief stapeln..
04.04.2005 16:08:05
Boris
Hi Markus,
denn mit "Kaum Kenntnisse" hat dein geposteter Code wenig zu tun.
Grüße Boris

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige