Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro für Benutzerdefinierter Autofilter
17.12.2006 23:16:00
Fürneisen
Hallo liebe Helfer,
vorab folgendes:
finde mein Excel 2002 total langsam, was Filter und Makros betrifft, diese habe ich auf der Symbolleiste mit Buttons verknüpft.
Habe irgendwo gelesen, dass es mir SP3 alles besser läuft und habe es gerade installiert. Habe auch unter Ansicht Statusleiste Häkchen entfernt, was wohl auch ein Bremsklotz sein soll. Bin aber im Ganzen nicht zufrieden.
Habe auch in meiner Liste bestehend aus 30 Blättern mit viele sverweise.
Rechnungsliste, Bestandslisten, Rechnungslisten von div. Kunden.
Bitte sagt jetzt nicht in Access wäre alles einfacher, habe absolut keinen Schimmer davon und auch keine Zeit mich da rein zu wuseln.
Hat jemand einen Tipp, wie Excel schneller filtert bzw Makros schneller laufen?
z.B. das hier

Sub ForceExtraNacht()
' ForceExtra Makro
' Makro am 26.06.2006 von Susanne Fürneisen aufgezeichnet
Selection.AutoFilter Field:=16, Criteria1:="=*Force Extra*", Operator:=xlAnd, _
Criteria2:="=*Nacht*"
End Sub

Nun zum 2ten Problem.
Ich finde es immer sehr müßig über den Benutzerdefinierten Autofilter per Hand auszufüllen und habe mir mit Hilfe von div. Foren folgendes Makro erstellt:
Dim Eingabe As String
Dim Eingabe2 As String
Eingabe = InputBox("1Worteingabe")
Eingabe2 = InputBox("2Worteingabe")
Selection.AutoFilter Field:=16, Criteria1:="=*" & Eingabe & "*", Operator:=xlAnd, _
Criteria2:="=*" & Eingabe2 & "*"
nun wollte ich noch eine Inputbox für den Field erstellen, sämtliche Varianten funktionieren nicht, nehme aber an, dass es geht, weil ich folgendes hier gefunden habe
https://www.herber.de/forum/archiv/120to124/t121631.htm
Auszug daraus:

Sub Makro1()
Dim Eingabe As String
Eingabe = InputBox("Worteingabe")
Selection.AutoFilter Field:=1, Criteria1:="=*" & Eingabe & "*", Operator:=xlAnd
End Sub

Field:=1 gibt in diesem Falle die zu filternde Spalte an (hier 1 = Spalte A). Wenn die Spalten wechseln, könnte man natürlich zusätzlich eine Abfrage für die Spalte einbauen und/oder das Ganze über eine UserForm nachbilden.
Habe aber keine Ahnung von Unserform
Vielen Dank schon mal für Eure Hilfe
Susi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für Benutzerdefinierter Autofilter
17.12.2006 23:25:05
Jens
Hi,
keine Ahnung, warum dreimal Inputbox gegenüber Autofilter benutzerdefiniert ein
Vorteil sein sollten?
mfg Jens
AW: Makro für Benutzerdefinierter Autofilter
17.12.2006 23:46:25
Fürneisen
Hallo Ganz einfach,
ich muss nicht - im Autofilter Pfeil nach unten anklicken, um benutzerdefiniert anzuklicken
ich muss nicht - Pfeil nach unten anklicken, um enthält anzuklicken,
ich muss nicht - nächste Feld anklicken um ein paar Buchstaben eizutragen
ich muss nicht - für 2tes Kriterum Pfeil nach unten anklicken, um enthält anzuklicken,
ich muss nicht - für 2tes Kriterum nächstes Feld anklicken um ein paar Buchstaben eizutragen
ich muss nicht - OK anklicken
Zähl mal die vielen Klicks...
sondern nur über Tastenkombi - Buchstaben eingeben - enter - Buchestabe eingeben - enter
- und schon läuft mein Mkro und filtert, meistens ganz fix und dann wieder aber ganz ganz lahm.
Versuch es selbst, der Unterschied ist erheblich.
Gruß Susi
Anzeige
AW: Makro für Benutzerdefinierter Autofilter
18.12.2006 02:32:56
Daniel
Hallo
zu deinem Geschwindigkeits-Problem:
Excel führt beim Filtern automatisch eine Neu-Berechnung aller Formeln durch.
Das kannst du umgehen, wenn du vor dem Filtern die automatische Neuberechnung abschaltets mit:
Application.Calculation=xlCalculationManual
Um die Berechnung wieder auf Automatsich zu schalten, wird dann dieser Befehl verwendet, allerdings erfolgt dann auch wieder eine Aufwendige Neuberechnugn
application.Calculation=xlCalculatioautomatic
Eine andere Möglichkeit, die Geschwindigkeit zu erhöhen wäre, die 2. Variante des S-Verweises zu nutzen, dh. den 4. Parameter auf "Wahr" oder 1 setzen.
Das geht aber nur unter ganz bestimmten Bedingungen:
a) deine Tabellen müssen aufsteigend sortiert sein
b) du musst dir darüber im Klaren sein, daß wenn ein Suchbegriff nicht gefunden wird, keine Fehlermeldung mehr erfolgt, sondern ein Wert aus der Tabelle zurückgegeben wird.
Die 2. Variante ist deswegen schneller, weil die Tabellen jetzt nicht mehr einzeln Zeile für Zeile durchsucht werden müssen, sondern aufgrung der Sortierung wesentlich effektivere Suchalgorhythmen verwendet werden können.
Gruß, Daniel
Anzeige
AW: Makro für Benutzerdefinierter Autofilter
18.12.2006 02:47:37
Daniel
Hallo
nun zum 2. Problem: das sollte doch so funktionieren:
Variante 1a:
Eingabe der Spalten-Nr. von Hand:
Dim Spalte as Long
Dim Eingabe As String
Dim Eingabe2 As String
Spalte = Inputbox("Filter gilt in Spalte Nr (1-255)
Eingabe = InputBox("1Worteingabe")
Eingabe2 = InputBox("2Worteingabe")
Selection.AutoFilter Field:=Spalte, Criteria1:="=*" & Eingabe & "*", Operator:=xlAnd, _
Criteria2:="=*" & Eingabe2 & "
Variante 1b:
Eingabe der Spalten-Nr. von Hand, diesmal aber mit den Buchstaben:
Dim strSpalte as string
Dim Spalte as long
Dim Eingabe As String
Dim Eingabe2 As String
strSpalte = Inputbox("Filter gilt in Spalte xy)
Spalte = columns(strSpalte).column
Eingabe = InputBox("1Worteingabe")
Eingabe2 = InputBox("2Worteingabe")
Selection.AutoFilter Field:=Spalte, Criteria1:="=*" & Eingabe & "*", Operator:=xlAnd, _
Criteria2:="=*" & Eingabe2 & "
Variante 2
Es wird in der Spalte gefiltert, in der Momentan der Cursor steht:
Dim Spalte as Long
Dim Eingabe As String
Dim Eingabe2 As String
Spalte = selection.column
Eingabe = InputBox("1Worteingabe")
Eingabe2 = InputBox("2Worteingabe")
Selection.AutoFilter Field:=Spalte, Criteria1:="=*" & Eingabe & "*", Operator:=xlAnd, _
Criteria2:="=*" & Eingabe2 & "
Gruß, Daniel
Anzeige
AW: Makro für Benutzerdefinierter Autofilter
Fürneisen
Hallo Daniel,
vielen Dank für Deine beiden Tipps und Hilfen. Ich werde alles nach und nach ausprobieren und mal schauen was mir am besten gefällt. Aber ich denke die Version mit Curser in Spalte klingt am besten, wäre nie darauf gekommen, hatte es immer mir as string probiert, naja eben keine Ahnung von VBA.
Ansonsten wünsche ich Dir und allen Helfern im Forum ein schönes besinnliches Weihnchtsfest mit Euren Lieben und ein Guten Rutsch mit viel Glück ins neue Jahr.
Herzlichen Dank, liebe Grüße
Susi

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige