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

Autofilter richtig einsetzen

Autofilter richtig einsetzen
04.03.2008 20:00:00
Alex
Hallo Leute,
ich hab ein riesen Problem mit dem Autofilter, ich hoffe ich kann es richtig erklären.
Hier erst mal ein kleiner Ausschnitt aus dem Code:
If Filter.ComboBox2.Value = "Gewicht" Then
With Selection
.AutoFilter Field:=z, Criteria1:=Filter.ComboBox1.Value, _
Operator:=xlAnd
.AutoFilter Field:=y, Criteria1:=Filter.ComboBox3.Value, _
Operator:=xlAnd
End With
Nun möchte ich das er für die Variable "z" die passende Spalte auswäht. Also für Alter = Spalte B, Größe = Spalte C usw. Das Gleiche soll auch mit Variable "y" geschehen.
Wie mache ich das ? Ich zerbrech mir schon seit Stunden den Kopf!
Alex

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter richtig einsetzen
04.03.2008 22:50:00
dan
Hallo Alex,
und was wenn du in deine combos zwei spalten machst? Erste mit dem Text (z.b. Alter) und zweite mit dem Nummer (z.b. 2 als Spalte B). D.h. in der Combo-Item wird man beide Infos haben, die man fuer den AutoFilter Field und Criteria braucht. Hilft das?
Gruss dan, cz.

AW: Autofilter richtig einsetzen
05.03.2008 09:35:24
Alex
äh, ja, kannst du mir da mal ein beispiel geben?
wie macht man denn in die combobox spalten rein?

AW: Autofilter richtig einsetzen
05.03.2008 10:42:56
dan
Hallo,
hier ein Beispiel. Man braucht dazu eine UserForm mit dem ComboBox1.
Option Explicit

Private Sub UserForm_Initialize()
Dim lst(1, 1) ' jetzt nur fuer zwei zeilen...
lst(0, 0) = "Alter"
lst(0, 1) = 2 ' ist immer die entsprechende Spaltennummer
lst(1, 0) = "Groesse"
lst(1, 1) = 3
Me.ComboBox1.ColumnCount = 2 ' combo mit 2 spalten
Me.ComboBox1.List = lst ' werte fuer combo
Me.ComboBox1.ColumnWidths = ";0" ' die zweite Spalte nicht zeigen
' oder hier eine andere Moeglichkeit wie man combo fillen kann:
' http://www.dailydoseofexcel.com/archives/2004/05/10/populating-multi-column-listboxcombobox/
End Sub



Private Sub ComboBox1_Change()
Dim spalte As Integer
Dim criteria As String
spalte = 0
criteria = ""
' die Combo-Werte uebernehmen, Me.ComboBox1.ListIndex gibt die ausgewaehlte zeile zurueck,
' falls nichts ausgewaehlt ist, ist es gleich -1
If (Me.ComboBox1.ListIndex > -1) Then
With Selection
spalte = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)
criteria = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 0)
.AutoFilter Field:=spalte, Criteria1:=criteria
End With
End If
End Sub


Anzeige
AW: Autofilter richtig einsetzen
06.03.2008 18:45:52
Alex
Hi,
ok, das funzt schon ganz gut, aber wie kann ich nun einen entsprechenden Wert auswählen?
Also sprich wenn ich das ganze jetzt auf "Gewicht" setzt, wie lese ich (am besten in eine weitere ComboBox) die Werte ein, die ich auswählen will?
Alex

Private Sub ComboBox1_Change()
Dim spalte As Integer
Dim criteria As String
spalte = 0
criteria = ""
' die Combo-Werte uebernehmen, Me.ComboBox1.ListIndex gibt die ausgewaehlte zeile zurueck,
' falls nichts ausgewaehlt ist, ist es gleich -1
If (Me.ComboBox1.ListIndex > -1) Then
With Selection
spalte = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)
criteria = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 0)
.Autofilter Field:=spalte, Criteria1:=criteria
End With
End If
End Sub



Private Sub UserForm_Initialize()
Dim lst(1, 1) ' jetzt nur fuer zwei zeilen...
lst(0, 0) = "Gewicht"
lst(0, 1) = 3 ' ist immer die entsprechende Spaltennummer
lst(1, 0) = "Größe"
lst(1, 1) = 4
Me.ComboBox1.ColumnCount = 2 ' combo mit 2 spalten
Me.ComboBox1.List = lst ' werte fuer combo
Me.ComboBox1.ColumnWidths = ";0" ' die zweite Spalte nicht zeigen
End Sub


Anzeige
AW: Autofilter richtig einsetzen
06.03.2008 19:44:00
Alex
habs hinbekommen! juhuuuuuuuuuuuuuuu!
nur noch eine frage, kann ich das ganze auch Tabellenübergreifend machen? Sprich 1. Filter Tabelle1
2. Filter Tabelle 2 usw... ?
Alex

AW: Autofilter richtig einsetzen
07.03.2008 07:52:55
dan
Hallo,
das freut mich dass es lauft :-).
Ich bin mir nicht sicher, ob ich die Frage mit den Tabellenübergreifenden filter richtig verstanden habe. Du hast eine User-form mit combos, wo die AutoFilters eingestellt werden, und willst jetzt die Combos nur fur ein bestimmtes sheet bunutzen? Beschreibe es mehr genau...
Gruss Dan, cz.

AW: Autofilter richtig einsetzen
07.03.2008 13:11:00
Alex
Ok, es ist so,
ich habe 5 Sheets. Jedes Sheet enthält ca. 250 Zeilen und ca. 20-25 Spalten.
In jedem Sheet sind die Spalten A und B gleich.
A = fortlaufende ID
B = Name
Nun frage ich mich ob ich einen Filter setzen kann, der mir z. B. sagt: Alter = 20 (steht in Sheet 1)
der mir nun alle mit 20 anzeigt. und dann einen weiteren Filter z.B. Gewicht (Steht in Sheet 2).
Ich weiß es wäre einfacher alles in ein Sheet zu packen, aber das wird mir sonst zu unübersichtlich!
Alex

Anzeige
AW: Autofilter richtig einsetzen
07.03.2008 20:03:05
dan
Ok also du willst das die Combos werden mit dem Sheet verbunden? Das koennte man z.B. mit dem Tag des Combos machen. Du benutzt also eine UserForm wo die Combos sich befinden? Die vorgehensweise ist mir noch nicht ganz klar. Wie soll es funktionieren?
Gruss Dan, cz.

AW: Autofilter richtig einsetzen
08.03.2008 11:53:00
Alex
Hi,
also noch mal zur erklärung.
Momentan ist es so, das ich in ComboBox1 die Spalten auswählen kann (aus Sheet1) und in der ComboBox2 kann ich die werte der angegebenen Spalte auswählen (typische Autofilter funktion.
Nun hätte ich gernen in der ComboBox1 auch die Spalten des Sheets2, Sheets3, Sheets4, Sheets5.
Quasi einfach den Filter über alle Sheets erweitern.
Da die Namen in allen Sheets gleich sind, denke ich das man es realisieren könnte.
Alle 5 Sheets sind gleich aufgebaut! Spalte A und B sind überall gleich!
Alex

Anzeige
AW: Autofilter richtig einsetzen
09.03.2008 22:05:08
dan
Hi,
also hier ein beispiel. Es ist aber nur beispiel, funktionieren wird es nicht ganz! Siehe die comments im code.
' es wird z.B. mit dem Command-button click gestartet...

Private Sub CommandButton1_Clict()
Dim spalte As Integer
Dim criteria As String
spalte = 0
criteria = ""
' die Combo-Werte uebernehmen, Me.ComboBox1.ListIndex gibt die ausgewaehlte zeile zurueck,
' falls nichts ausgewaehlt ist, ist es gleich -1
If (Me.ComboBox1.ListIndex > -1 And Me.ComboBox2.ListIndex > -1) Then
' hier muss es anders sein, da du die spalten-nummer in der Combo1 hast
' und die werte in der Combo2, also wahrscheinlich so:
' >>> criteria = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 0) ?
spalte = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)
criteria = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 0)
' hier werden einfach alle sheets durchgegangen und der
' Filter fuer die 'spalte' gesetzt
Call SetFilterAllSheets(spalte, criteria)
End If
End Sub



Private Sub SetFilterAllSheets(ByVal i_spalte As Integer, ByVal i_criteria As String) ' i_ ...  _
wie input parameter
Dim wst As Worksheet
Dim curReg As Range
On Error GoTo SetFilterAllSheets_Error
For Each wst In Worksheets
' damit dies mit der Current Region funzt, musessen deine daten
' in A1 beginnen, duerfen keine leere spalten bzw. leere zeilen enthalten...
Set curReg = wst.Range("a1").CurrentRegion
curReg.AutoFilter Field:=i_spalte, Criteria1:=i_criteria
Next wst
Exit Sub
SetFilterAllSheets_Error:
MsgBox "error in SetFilterAllSheets, " & Err.Description, vbCritical, "Error"
End Sub


Anzeige
AW: Autofilter richtig einsetzen
10.03.2008 17:21:00
Alex
Hi,
vielen Dank für Deine Hilfe, aber ich habe es jetzt anders gelöst.
Ich behandle das ganze jetzt wie eine Datenbank, in der Excel nur noch die Infos enthält.
Alle Änderungen und was sonst noch zu machen ist, habe ich über UserForms gelöst.
Sprich alles in ein Sheet (das geht jetzt von Spalt A - CC") und alle Befehle kann ich
über seperate Userforms steuern, schien mir irgendwie einfacher.
Aber danke vielmals, deinen Code habe ich nicht so recht zum laufen gebracht.
Alex

AW: Autofilter richtig einsetzen
11.03.2008 09:14:00
dan
Hi Alex,
ist OK, haupsache es funzt wie du es brauchst!
Viel Erfolg, Dan, cz.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige