Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBA: nach ausgewählten Kriterien filtern

Frage Microsoft Microsoft Office

Mitglied: BerndVorwerk

BerndVorwerk (Level 1) - Jetzt verbinden

13.08.2014 um 09:52 Uhr, 1361 Aufrufe, 7 Kommentare

Hallo an alle.
Auch auf die Gefahr hin, dass ich euch so langsam auf die Nerven gehe, aber ich bräuchte wieder einmal Hilfe.
In einem Tabellenblatt "Übersicht" wähle ich Kriterien aus, indem ich sie in Spalte B mit einem "X" (ausgewählt) oder einem "-" (nicht ausgewählt) markiere.
Nach den Kriterien, die mit einem "X" gekennzeichnet sind (bis zu 15 möglich) möchte ich dann im Tabellenblatt "Auswertung" die Spalte F filtern.
In dem angehängten Beispiel also nach Dicke, Länge, Oberfläche und Kante. Breite und Radius sollen also "weggefiltert" werden.
Blatt Übersicht:
AB
1DickeX
2LängeX
3Breite-
4OberflächeX
5Radius-
6KanteX
7...-

Blatt Auswertung:
...EF
1...2Dicke
2...3Dicke
3...1Länge
4...2Breite
5...3Breite
6...1Oberfläche
7...2Oberfläche
8...4Radiu
9...5Kante
10...6Kante

Bei Änderung der Auswahl auf "Übersicht" und Ausführung des Makros soll die Filterung dann auch wieder angepasst werden.
Gibt es für so etwas eine Lösung?
Noch einmal vielen Dank!
Gruß,
Bernd
Mitglied: colinardo
13.08.2014, aktualisiert um 10:49 Uhr
Moin Bernd,
mal wieder da
Beispiel für den Fall das nur Werte aus der Liste in der Übersicht im Sheet Auswertung stehen: FilterRange_246351.xlsm

Grüße Uwe
Bitte warten ..
Mitglied: BerndVorwerk
13.08.2014 um 13:26 Uhr
Funtioniert das auch, wenn in der Auswahlliste in der Übersicht mehr Werte vorhanden sind als in der Auswertungsliste? Dann sollen natürlich nur die berücksichtigt werden, die auch vorhanden sind.
Bitte warten ..
Mitglied: colinardo
13.08.2014, aktualisiert um 13:29 Uhr
Zitat von BerndVorwerk:
Funtioniert das auch, wenn in der Auswahlliste in der Übersicht mehr Werte vorhanden sind als in der Auswertungsliste? Dann sollen natürlich nur die berücksichtigt werden, die auch vorhanden sind.
ja soweit ich dich richtig interpretiere.
Bitte warten ..
Mitglied: BerndVorwerk
13.08.2014 um 14:02 Uhr
Ja, geht super.
Jetzt hoffentlich nur eine Kleinigkeit.
Kann ich das auch ohne worksheet_change machen. Also einfach mit Sub_name().
Das Makro müsste jetzt doch über ein bereits vorhandenes worksheet_calculate() aufgerufen werden.
Noch mal danke!
Gruß,
Bernd
Bitte warten ..
Mitglied: colinardo
13.08.2014, aktualisiert um 14:04 Uhr
Zitat von BerndVorwerk:
Kann ich das auch ohne worksheet_change machen. Also einfach mit Sub_name().
Sicher, kein Problem
01.
Sub Test() 
02.
    Dim wsAuswertung As Worksheet, wsUebersicht As Worksheet, cell As Range, arrFilter() As String 
03.
     
04.
    Set wsUebersicht = Worksheets("Übersicht") 
05.
    Set wsAuswertung = Worksheets("Auswertung") 
06.
    cnt = 0 
07.
    For Each cell In wsUebersicht.Range("B1:B15") 
08.
         If cell.Value <> "X" Then 
09.
            ReDim Preserve arrFilter(cnt) 
10.
            arrFilter(cnt) = cell.Offset(0, -1).Value 
11.
            cnt = cnt + 1 
12.
         End If 
13.
     Next 
14.
     wsAuswertung.Range("E:F").AutoFilter Field:=2, Criteria1:=arrFilter, Operator:=xlFilterValues 
15.
End Sub
Bitte warten ..
Mitglied: BerndVorwerk
13.08.2014 um 15:30 Uhr
Hallo Uwe,
das funktioniert super. Danke schonmal. Leider fällt mir jetzt während der Anwendung auf, dass ich das Problem unterschätzt und bestimmte Faktoren vergessen habe.
Und zwar:
Die gleiche Auswahl im Blatt "Übersicht" gibt es 2mal. Zum einen die, mit der du/ich gerade arbeite (Spalte A für Text und Spalte B für X oder -). Das gleiche gibt es auch noch mal in den Spalten D und E (gleicher Text, aber evtl. Auswahl anderer Kriterien). Es müssen also nicht zwingend auf beiden Seiten die gleichen Sachen ausgewählt sein.
Jetzt ergeben sich für mich plötzlich zwei unterschiedliche Aufgaben:

Ein Makro, ähnlich wie das bereits vorgestellte. Es soll jetzt aber nur "weggefiltert" werden, wenn das entsprechende Kriterium weder auf der linken noch auf der rechten Seite ausgewählt wurde.
Zur Erklärung:
Im Blatt "Auswertung" habe ich die Auswertungen für die rechte und linke Seite nebeneinander platziert. D.h. wenn ich filtern würde, obwohl nur eine Seite nicht markiert ist, würde ich die andere Seite direkt mit wegfiltern obwohl sie gebraucht wird. Daher soll nur weggefiltert werden, wenn sowohl in Spalte B als auch in Spalte E ein "-" steht.

Zusätzlich bräuchte ich noch ein weiteres Makro um einen Datensatz in einem weiteren Tabellenblatt "Grafiken" zu filtern.
Auch zur Erklärung:
Hier habe ich die grafischen Auswertungen. Aber alles untereinander, also erst alle Grafiken für die linke Seite untereinander, danach folgend alle der rechten Seite.
Hier soll jetzt wirklich einzelnd gefiltert werden.

Ich hoffe das war einigermaßen verständlich... Gäbe es hier sonst die Möglichkeit Beispieldateien zu posten?
Danke und Gruß,
Bernd
Bitte warten ..
Mitglied: colinardo
13.08.2014, aktualisiert um 16:09 Uhr
Zitat von BerndVorwerk:
Ich hoffe das war einigermaßen verständlich... Gäbe es hier sonst die Möglichkeit Beispieldateien zu posten?
schick mir dein Sheet am besten via Mail, ich schicke dir meine Mailadresse via Personal Message ...

Es soll jetzt aber nur "weggefiltert"
was jetzt wegfiltern ?? was soll behalten werden ? wenn da ein "-" steht oder ein 'X' ? Vorher wolltest du das alle bei einem X weggefiltert werden ??

wäre es langsam nicht mal angebracht sich etwas mehr in VBA einzuarbeiten ?!
VBA/VBS/WSH/Office Developer Referenzen
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Access 2010 - Filter für Datum funkioniert nicht VBA (4)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Microsoft Office
EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbus zum Thema Microsoft Office ...

Datenbanken
gelöst Access 2010 Filter zurücksetzen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

VB for Applications
gelöst DB-Abfrage in Excel mit Kriterien aus Excel (11)

Frage von JensDND zum Thema VB for Applications ...

Neue Wissensbeiträge
Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (33)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...