Microsoft Excel

Herbers Excel/VBA-Archiv

AutoFilter-Auswahlliste per VBA auslesen

Betrifft: AutoFilter-Auswahlliste per VBA auslesen von: Horst Helfen
Geschrieben am: 29.07.2008 11:47:16

Hallo liebe Excelperten,

ist es möglich, per VBA die Liste auszulesen, die man angezeigt bekommt, wenn man auf den kleinen Pfeil am Kopf einer Spalte mit AutoFilter klickt? Dort stehen ja die Unikate der in der Spalte vorkommenden Werte. Will man diese bei einer sehr langen Tabelle (50.000 Zeilen) per VBA ermitteln, dauert das erheblich länger als Excel für den AutoFilter braucht.

  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: ChristianM
Geschrieben am: 29.07.2008 12:29:26

Hallo,
mein Vorschlag: nimm den Spezialfilter und lass dir das Ergebnis in einem anderen Sheet oder wo auch immer ausgeben.
btw: Autofilter zeigt dir nur die ersten 1000 Einträge...

Gruß Christian


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Horst Helfen
Geschrieben am: 29.07.2008 13:16:17

Christian,

danke für die schnelle Antwort. Das Problem mit den 1.000 Anzeigen bei AutoFilter ist eher nicht relevant, da zwar viele Zeilen in der Tabelle sind, aber die eindeutigen Werte weit unter 1.000 liegen. Mit dem Spezialfilter habe ich das auch schon versucht, da das Ganze aber über 62 Spalten durchgeführt werden soll, dauert es einfach zu lange. Beim Autofilter werden die in der DropDownListe angezeigten Werte ja offenbar über den Wert Field angesprochen - den müsste man doch auch per VBA ermitteln können?


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Nepumuk
Geschrieben am: 29.07.2008 13:42:31

Hallo Horst,

Field ist ein ganzzahliger Parameter der Autofilter-Methode zum ansteuern der ensprechenden Spalte im Autofilter. Von dem kannst du nichts zurückerwarten. Und von der Methode auch nicht, denn die hat, wie die meisten Methoden, keinen Rückgabewert.


Kurz und gut, du kommst an die Liste nicht heran.

Und wenn du einen Blick ins Archiv gewagt hättest, dann müsstest du nicht umsonst nachfragen. Denn das wurde schon mehrfach erklärt.

Gruß
Nepumuk


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Horst Helfen
Geschrieben am: 29.07.2008 14:31:51

Das Ergebnis soll wieder in einer Auswahlliste in einer UserForm verwendet werden.


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Rudi Maintaire
Geschrieben am: 29.07.2008 14:54:04

Hallo,
das sollte gehen:

Function myList(sh As Worksheet, lngCol As Long)
   Dim vntList(), n As Long, vntC, vntTmp
   Dim myCol As New Collection
   With sh
   ReDim vntList(1 To 1, 1 To Application.CountA(.Columns(lngCol)))
   vntTmp = .Range(.Cells(1, lngCol), .Cells(Rows.Count, lngCol).End(xlUp))
   End With
   For Each vntC In vntTmp
      Err.Clear
      On Error Resume Next
      myCol.Add vntC, CStr(vntC)
      If Err.Number = 0 Then
         n = n + 1
         vntList(1, n) = vntC
      End If
   Next
   ReDim Preserve vntList(1 To 1, 1 To n)
   myList = WorksheetFunction.Transpose(vntList)
End Function


Private Sub UserForm_Initialize()
ComboBox1.List = myList(Sheets(1), 1)
End Sub

Gruß
Rudi


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Horst Helfen
Geschrieben am: 29.07.2008 15:56:15

Hallo Rudi,

tausendfachen Dank! Die Funktion hat uns bei einem totalen Engpass enorm weitergeholfen. Das geht ja selbst bei 45.000 Zeilen, die alle unterschiedliche Werte enthalten, wie der Blitz.

Gruß
Horst


  

Betrifft: AW: AutoFilter-Auswahlliste per VBA auslesen von: Gernot
Geschrieben am: 29.07.2008 13:32:14

Hi,

wo/wie soll denn das Ergebnis ausgegeben werden?

mfg Gernot


 

Beiträge aus den Excel-Beispielen zum Thema "AutoFilter-Auswahlliste per VBA auslesen"