Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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
Inhaltsverzeichnis

Zwei ToggleButtons mit Autofilter

Zwei ToggleButtons mit Autofilter
Maximilian
Hallo Excel-Profis,
ich sitze jetzt schon einige Tage an einem Problem, Internet war bisher auch nicht erfolgreich.
Wäre nett wenn jemand von euch mir helfen könnte.
Ich habe in einem Tabellenblatt 6 Spalten. Ein ToggleButton soll einen Autofilter für die erste Spalte aktivieren. Danach will ich mit einem zweiten ToggleButton die zweite Spalte durchsuchen, usw. Das Ziel ist es, dass bei der 2,3,4ten Suche immer die Ergebnisse aus den vorherigen Filtern bestehen bleibt und nur aus diesen Ergebnissen weitergefiltert wird. Bis jetzt springt bei Anwahl des zweiten ToggleButtons das Filtern wieder auf alles Ergebnisse und nicht auf die, die schon vorher gefiltert wurden.
Bis jetzt habe ich:
ToggleButton1:

Private Sub ToggleButton1_Click()
With ToggleButton1
.Caption = "Nummern-Suche"
If Me.ToggleButton1.Value = True Then
Call Suchen
Else
Call Suchen_aus
End If
End With
End Sub

ToggleButton2:

Private Sub ToggleButton2_Click()
With ToggleButton2
.Caption = "Länder-Suche"
If Me.ToggleButton2.Value = True Then
Call Suchen1
Else
Call Suchen_aus1
End If
End With
End Sub

Makro Suchen:
Sub Suchen()
Dim w1 As Variant
w1 = Application.InputBox("Bitte geben Sie die Bestellnummer ein.", "Nummern-Suche", , Type:= _
_
1 + 2)
Range("A2:A10000").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$A$10000").AutoFilter Field:=1, Criteria1:=w1, _
Operator:=xlAnd
End Sub

Makro Suchen_aus:
Sub Suchen_aus()
Range("A2:A10000").Select
Selection.AutoFilter
End Sub

Suchen1 und Suchen_aus1 sind im Grunde dasselbe wie oben, nur habe ich statt "w1" "w2" geschrieben.
Wäre wirklich dankbar für jeden Tipp.
Viele Grüße

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

Betreff
Benutzer
Anzeige
AW: Zwei ToggleButtons mit Autofilter
10.07.2012 12:20:54
fcs
Hallo Maximilian,
damit es funktioniert muss mit dem 1. Togglebutton der Autofilter schon für alle 6 Spalten aktiviert werden.
Die anderen Buttons dürfen dann nur noch den Filter in der jeweiligen Spalten setzen bzw. auf (alle) setzen.
Es ist auch geschickter für die Buttons 2 bis 6 nur eine Suchen- und SuchenAus-Prozedur zu verwenden, an die die variablen Werte als Parameter übergeben werden.
Gruß
Franz
Private Sub ToggleButton1_Click()
With ToggleButton1
.Caption = "Nummern-Suche"
If Me.ToggleButton1.Value = True Then
Call Suchen
Else
Call Suchen_aus
Me.ToggleButton2.Value = False
Me.ToggleButton3.Value = False
End If
End With
End Sub
Private Sub ToggleButton2_Click()
With ToggleButton2
.Caption = "Länder-Suche"
If .Value = True Then
If Suchen1(FieldNr:=2, _
inpText:="Bitte geben Sie ein Land ein", _
inpTitel:="Länder-Suche") = False Then .Value = False
Else
Call Suchen_aus1(FieldNr:=2)
End If
End With
End Sub
Private Sub ToggleButton3_Click()
With ToggleButton3
.Caption = "Feld03-Suche"
If .Value = True Then
If Suchen1(FieldNr:=3, _
inpText:="Bitte geben Sie Feld03 ein", _
inpTitel:="Feld03-Suche") = False Then .Value = False
Else
Call Suchen_aus1(FieldNr:=3)
End If
End With
End Sub
Sub Suchen()
Dim w1 As Variant
w1 = Application.InputBox("Bitte geben Sie die Bestellnummer ein.", _
"Nummern-Suche", , Type:=1 + 2)
ActiveSheet.Range("A2:F10000").AutoFilter Field:=1, Criteria1:=w1, _
Operator:=xlAnd
End Sub
Function Suchen1(FieldNr As Integer, inpText As String, inpTitel As String) As Boolean
Dim w1 As Variant
Suchen1 = True
If ActiveSheet.AutoFilterMode = False Then
MsgBox "Bitte erst eine Bestellnummer wählen", vbInformation + vbOKCancel, inpTitel
Suchen1 = False
Else
w1 = Application.InputBox(inpTitel, inpTitel, , Type:=1 + 2)
ActiveSheet.AutoFilter.Range.AutoFilter Field:=FieldNr, Criteria1:=w1
End If
End Function
Sub Suchen_aus()
'Alles einblenden und Filter deaktivieren
With ActiveSheet
.ShowAllData
.AutoFilterMode = False
End With
End Sub
Sub Suchen_aus1(FieldNr As Integer)
'Filter in Spalte auf alle setzen
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilter.Range.AutoFilter Field:=FieldNr
End If
End Sub

Anzeige
AW: Zwei ToggleButtons mit Autofilter
12.07.2012 09:53:40
Maximilian
das ganze hat super geklappt vielen dank!
super freundlich hier und echt schnelle antwort!
viele grüße
AW: Zwei ToggleButtons mit Autofilter
13.07.2012 10:19:50
Maximilian
Hallo, ich muss euch nocheinmal um Hilfe bitten, anscheinend stosse ich die Tage immer wieder an meine Grenzen,
ist es nun möglich, dass ich per Togglebutton ein Diagramm erstellen lassen kann, das ausserdem noch über eine dynamische Trendlinie verfügt, die sich immer anpasst, wenn die Werte über die ToggleButtons geändert werden?
Ich hoffe dass das Problem lösbar ist!
Vielen Dank für eure Hilfe.
Grüße
AW: Zwei ToggleButtons mit Autofilter
13.07.2012 22:55:06
fcs
Hallo Max,
erstelle das Diagramm, wenn alle Daten angezeigt werden. Dabei dann den Datenbereich bezüglich der Datenzeilen so festlegen, wie beim Autofilter. Auch die Trendlinie der Datenreihe kannst du schon einfügen.
Das Diagramm verschiebst du dann am besten auf ein Diagrammblatt oder ein anderes Tabellenblatt, da es sonst beim Filtern der Daten ggf. in der Höhe zusammengepresst wird.
Wenn du mit den anderen Buttons die Filter setzt passen sich die Daten im Diagramm automatisch an.
Je nachdem wieviele Datenzeilen du hast kann das Diagramm ziemlich dicht besetzt sein. Evtl. werden es auch zuviele Datenreihen für die Datendarstellung im Diagramm.
Falls dies der Fall ist, dann wird es ggf. erforderlich, nach dem Filtern die sichtbaren Daten in ein separates blatt zu kopieren und das Diagramm auf diesen Daten aufzubauen.
Probiere aber erst einmal das Diagramm mit allen Daten aufzubauen. Falls das nicht funktioniert, dann melde dich nochmals.
Gruß
Franz
Anzeige
AW: Zwei ToggleButtons mit Autofilter
16.07.2012 09:02:20
Maximilian
okay das klappt mit dem diagramm. ich habe jez ein makro erstellt, mit dem ich die trendlinien einblenden kann. mit dem hier müsste ich ja aber die seriescollection für alle möglichkeiten aufschrieben.
Sub c()
ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
ActiveChart.SeriesCollection(2).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
End Sub

wie schreib ich das denn damit immer von allen datenreihen die gerade da sind die trendlinien angezeigt werden?
Vielen, vielen dank für dir Hilfe!
Anzeige
AW: Zwei ToggleButtons mit Autofilter
16.07.2012 09:02:40
Maximilian
okay das klappt mit dem diagramm. ich habe jez ein makro erstellt, mit dem ich die trendlinien einblenden kann. mit dem hier müsste ich ja aber die seriescollection für alle möglichkeiten aufschrieben.
Sub c()
ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
ActiveChart.SeriesCollection(2).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
End Sub

wie schreib ich das denn damit immer von allen datenreihen die gerade da sind die trendlinien angezeigt werden?
Vielen, vielen dank für dir Hilfe!
Anzeige
AW: Zwei ToggleButtons mit Autofilter
16.07.2012 09:02:59
Maximilian
okay das klappt mit dem diagramm. ich habe jez ein makro erstellt, mit dem ich die trendlinien einblenden kann. mit dem hier müsste ich ja aber die seriescollection für alle möglichkeiten aufschrieben.
Sub c()
ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
ActiveChart.SeriesCollection(2).Trendlines.Add(Type:=xlMovingAvg, Period:= _
10, Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:= _
False).Select
End Sub

wie schreib ich das denn damit immer von allen datenreihen die gerade da sind die trendlinien angezeigt werden?
Vielen, vielen dank für dir Hilfe!
Anzeige
AW: Zwei ToggleButtons mit Autofilter
16.07.2012 22:05:36
fcs
Hallo Max,
du kannst in einer Schleife alle Reihen mit einer Trendlinie versehen,ohne die genaue Anzahl zu kennen.
Gruß
Franz
Sub c()
Dim objSeries As Series
For Each objSeries In ActiveChart.SeriesCollection
If objSeries.Trendlines.Count > 0 Then objSeries.Trendlines(1).Delete
objSeries.Trendlines.Add Type:=xlMovingAvg, Period:=10, _
Forward:=0, Backward:=0, DisplayEquation:=False, DisplayRSquared:=False
Next
End Sub

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige