Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel Makro Autofilter ???





Frage

Hallo Zusammen, Vielleicht kann mir jemand von Euch helfen. Ich habe einen Datensatz in Excel über den ich einen Autofilter lege und dann über "Benutzerdefinierte Autofilter" ein Suchwort eingebe, das in der Spalte vorkommen soll damit der zugehörige Datensatz angezeigt wird.Funktioniert auch wunderbar. Ich bin aber der Meinung, dass es doch auch eine elegantere Lösung geben muss. Kann man nicht ein "handgemachtes" Eingabefeld in das ExcelSheet implementieren, in das ich den gesuchten Begriff eingeben kann? Dann sollten nur die Datensätze angezeigt werden, die in der entsprechenden Spalte den Begriff enthalten. Ist es möglich so was zu programmieren oder ist das ziemlich komplex? Ich bin Euch echt super dankbar für Eure Hilfe. Bekomme das nämlich alleine nicht hin. VLG Praktikantin

Antwort 1 von schnallgonz

Hi Ani

meine Antwort in
https://supportnet.de/threads/1314219

hilft Dir das schon?

(Fast) ohne VBA und sehr übersichtlich, meine ich.
"Filtert" durch Kopieren in einen festgelegten Bereich.

Als VBA-Lösung wird es etwas mehr als ein Dreizeiler,
am besten über ein Dialogfenster, oder?
Dort müßte man dann in einer Listbox die Spalte anklicken und in einem Eingabefeld den Suchbegriff eingeben.
Oder stellst Du Dir was anderes vor?

Überleg Dir, was Du möchtest.
Bis neulich
schnallgonz

Antwort 2 von fürLau

Hallo Praktikantin

Hol Dir aus der Symbolleiste ActiveX-Steuerelemente ein Kontrollkästchen und plaziere es in Deiner Tabelle.
Wenn Du mit der rechten Maustaste auf das Kontrollkästchen klickst und dann auf Code anzeigen gehst, kannst Du nachfolgenden Code dort hinkopieren:
Option Explicit

Private Sub CheckBox1_Click()
CheckBox1.Caption = Range("E1") & " in " & Range("F1")
If CheckBox1.Value = True Then
Range(Range("F1").Value).AutoFilter 1, Range("E1").Value
Else
CheckBox1.Caption = "Alles"
 ActiveSheet.AutoFilterMode = False
End If
End Sub


In meinem Beispiel gehe ich davon aus, daß der Suchbegriff in Zelle E1 (z.B. Anton), und der zu filternde Bereich in F1 (z.B. A1) angegeben ist.
Hoffe das ist in etwa das, was Du wolltest.
Gruß

Antwort 3 von schnallgonz

N´abend,

in VBA geht´s doch mit einem Dreizeiler :-)
Hier ein Code, der automatisch nach dem Zellinhalt der aktiven Zelle filtert.

Sub FilterSchnell()
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
End Sub

Bsp:
Aktive Zelle ist A20 mit Inhalt "Meier".
Es werden alle Datensätze gefiltert, die in Spalte A den Namen "Meier" enthalten.
Kopiere den Code in ein Standardmodul und weise das Makro einer Schaltfläche zu.

mfg
schnallgonz

Antwort 4 von Provantis

Hallo habe ein kleines Problem mit der Automatisierung
vom Autofilter in einem Makro?

Möchte den Autofilter in einem Makro Integrieren und natürlich nur die ausgewählten Bereiche auswählen und in einem anderm SHEET ablegen.
Habe in einem Bericht etwas über das gefunden war sehr happy, leider ging es nicht!!!

Das Makro im Bericht.

(ActiveCell.CurrentRegion.SpecialCells(xlVisible).Copy
'Hier eventuell Zelle weiter rechts angeben
Range("D1").Select ActiveSheet.Paste).

Habe es in meinem Makro integrieren wollen und funktioniert nicht richtig.
Hier das Makro

Columns("A:A").Select
Selection.AutoFilter Field:=1, Criteria1:=">=1", Operator:=xlAnd, _
Criteria2:="<>1*"
Columns("A:A").End(xlDown).Select
ActiveCell.CurrentRegion.SpecialCells(xlVisible).Copy
Reihe_KeepfileEnde = ActiveCell.Row ' last row
Workbooks.Add
ActiveSheet.Paste

Meine SHEET enthält 8 Zeilen mit dem Makro werden aber nur
4 Zeilen ausgewählt????

Antwort 5 von schnallgonz

Hi,
das sollte ausreichen:

Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:=">=1", Operator:=xlAnd, _
Criteria2:="<>1*"
ActiveCell.CurrentRegion.SpecialCells(xlVisible).Copy
Workbooks.Add
ActiveSheet.Paste



Zitat:
Meine SHEET enthält 8 Zeilen mit dem Makro werden aber nur
4 Zeilen ausgewählt?

Vielleicht entsprechen nur 4 Datensätze Deiner Filtervorgabe?

gruß
schnallgonz

Antwort 6 von Provantis

Hallo schnallgonz
leider funktioniert es nicht ,denn ich habe ja mit
der Funktion
(Columns("A:A").Select)
ja die ganze Kollone ausgewählt
und das ist meiner Meinung richtig ,weil wenn ich denn Autofilter
einschalte und die bestimmten Kriteriern auswähle die im oberen Makro ja beschrieben sind, bekomme ich die Resultate, wie unten Angezeigt. Aber ich möchte diese Daten dann kopieren und in einem anderen SHEET ablegen und das mit einem Makro und genau diese 8 Rows ???


1 m Mean 173.87 191.79
2 m Mean 174.19 190.13
3 m Mean 174.24 191.18
4 m Mean 174.29 191.64
1 f Mean 130.63 139.96
2 f Mean 130.7 140.68
3 f Mean 130.91 142.81
4 f Mean 130.73 140.84

Gruss
Provantis

Antwort 7 von schnallgonz

Hi,
Zitat:
leider funktioniert es nicht

Was genau funktioniert nicht?

Zitat:
,denn ich habe ja mit
der Funktion
(Columns("A:A").Select)
ja die ganze Kollone ausgewählt
und das ist meiner Meinung richtig ,weil wenn ich denn Autofilter
einschalte und die bestimmten Kriteriern auswähle die im oberen Makro ja beschrieben sind, bekomme ich die Resultate, wie unten Angezeigt.

Mit der Spaltenmarkierung beschränkst Du lediglich den Autofilter auf Spalte1, Sinn und Zweck dieser Übung?
Für Kriterienfestlegung auf SpalteA ist nicht Deine Markierung verantwortlich, sondern
Selection.AutoFilter Field:=1, Criteria1:=">=1", Operator:=xlAnd, Criteria2:="<>1*"


Zitat:
Aber ich möchte diese Daten dann kopieren und in einem anderen SHEET ablegen und das mit einem Makro und genau diese 8 Rows ???

Mit
ActiveCell.CurrentRegion.SpecialCells(xlVisible).Copy

kopierst Du den sichtbaren Bereich, also die gefilterten Datensätze und genau das willst Du doch, oder?
Wo also ist das Problem?
Willst Du nur ein neues Blatt und keine neue Mappe?
Dann mußt Du Sheets.Add nehmen anstelle Workbooks.Add.

In meiner Beispielmappe funzt der Code jedenfalls.

gruß
schnallgonz

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: