Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

  Autofilter VBA - Bedingungen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Christoph
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 05.04.2005
Beiträge: 20

BeitragVerfasst am: 21.06.2009, 14:49 Nach oben

Hallo lieber Unterstützer,

ich habe folgendes Problem bei Excel, womit ich mich schon den ganzen Tag mit rumschlage. Ich komme nicht weiter, vielleicht habt Ihr eine Idee.

Das Problem:
Ich möche eine Tabelle per VBA automatisch filtern (Autofilter).

Hierfür habe ich Eingabefelder, in die etwas eingetragen werden können oder nicht.

Wenn dort etwas eingetragen ist, soll er natürlich danach filtern. Wenn nun NICHTS dadrin steht, soll er das anzeigen (weil es nicht durch ein Kriterium "eingeschränkt" wurde).

Nur dieses "anzeigen" bekomme ich nicht hin. Er erkennt die leere Zelle und zeigt mir daher diesen Wert nicht an.

Habt Ihr vielleicht eine Lösung für mein Problem?

Mein Code sieht folgendermaßen aus:

'Filter setzen (1 entspricht in diesem Beispiel Spalte A, 2 entspricht Spalte B)
Selection.AutoFilter Field:=3, Criteria1:=Range("C67").Value
Selection.AutoFilter Field:=11, Criteria1:=Range("K67").Value
Selection.AutoFilter Field:=17, Criteria1:=Range("Q67").Value
Selection.AutoFilter Field:=19, Criteria1:=Range("S67").Value

Ich bedanke mich schon einmal bei Euch und hoffe, dass jemand vielleicht eine Idee hat.

Danke. Christoph
Benutzer-Profile anzeigenPrivate Nachricht senden
Exl121150
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 24.11.2008
Beiträge: 729

BeitragVerfasst am: 21.06.2009, 15:56 Nach oben

Hallo Christoph,

meinst Du eine Lösung von solcher Art:

Code:
If IsEmpty(Range("C67").Value) Then
  Selection.AutoFilter Field:=3
Else
  Selection.AutoFilter Field:=3, Criteria1:=Range("C67").Value
End If


Für die restlichen Fields müsste das analog durchgeführt werden.

_________________
Liebe Grüße
Exl121150

Win XP Professional SP3
Office 2007 Professional SP2
Benutzer-Profile anzeigenPrivate Nachricht senden
Christoph
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 05.04.2005
Beiträge: 20

BeitragVerfasst am: 21.06.2009, 17:25 Nach oben

Hallo Exl121150,

vielen Dank, Deine Formel klappt. Eine Frage habe ich noch:
Die Formel klappt anscheinend nur, wenn ich direkt auf die betreffenden Zellen verweise. Mein Problem:

Im Teil 1 kann man die Eintragungen machen.

Im Teil 2 bilde ich diese Eintragungen per Verweis alle übersichtlich ab.

Im Teil 3 nehme ich die Verweise von 2 und habe die mit einer Formel hinterlegt.

Wenn ich nun Deine Formel mit meinem Teil 2 oder 3 verknüpfe, scheint der nichts zu machen, weil er (meine Vermutung), die Zelle nicht als leer erkennt, weil da ja eine Formel hinterlegt ist (=WENN(C60="";"*";C60).

Hast Du eine Idee, ob es noch einen anderen Code gibt, so dass er auch Zellen mit Formel als leer erkennt?

Oder mache ich was anderes falsch? Vielen Dank für Deine Hilfe.

Christoph
Benutzer-Profile anzeigenPrivate Nachricht senden
Exl121150
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 24.11.2008
Beiträge: 729

BeitragVerfasst am: 21.06.2009, 17:51 Nach oben

Hallo Christoph,

wass passiert, wenn Du die IF-Bedingung änderst auf:
Code:
If Range("C67").Value="" Then

statt
Code:
If IsEmpty(Range("C67").Value) Then


Diese IF-Abfrage funktioniert dann, wenn tatsächlich in Zelle C67 eine leere Zeichenkette enthalten ist (oder ein Leerwert). Es dürften aber keinesfalls zB. Leerzeichen dort stehen oder ein "*" (wie ich Deiner Formel entnehme).

Gegen Leerzeichen (die optisch nicht sichtbar sind, aber natürlich trotzdem Zeichen sind) würde auch noch folgende IF-Abfrage schützen:
Code:
If Trim(Range("C67").Value)="" Then

_________________
Liebe Grüße
Exl121150

Win XP Professional SP3
Office 2007 Professional SP2
Benutzer-Profile anzeigenPrivate Nachricht senden
Christoph
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 05.04.2005
Beiträge: 20

BeitragVerfasst am: 21.06.2009, 18:05 Nach oben

Hi Exl121150,

es scheint nun zu klappen. Ich lasse die "*" raus, und er frisst es Smile.

Vielen Dank für Deine Hilfe.

Ich glaube, dass ich das "Trimmen" nicht brauche, werde aber mal sehen, wie sich das in der Praxis verhält.

Vorerst vielen Dank!

Gruß Christoph
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Zwi Bedingungen in einer Wenn Funktion Tauchmann Microsoft Excel Hilfe 3 05.03.2010, 19:10 Letzten Beitrag anzeigen
Keine neuen Beiträge Autofilter blendet zu viel aus Aly358 Microsoft Excel Hilfe 5 04.03.2010, 09:28 Letzten Beitrag anzeigen
Keine neuen Beiträge Unter Excel 2000 einen Autofilter und... Dr.Beast Microsoft Excel Hilfe 4 18.02.2010, 11:35 Letzten Beitrag anzeigen
Keine neuen Beiträge Optimum einer Funktion mit mehreren B... Tauchmann Microsoft Excel Hilfe 2 07.11.2009, 17:31 Letzten Beitrag anzeigen
Keine neuen Beiträge Probleme mit dem Autofilter Slash79 Microsoft Excel Hilfe 2 27.10.2009, 15:58 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Tuning Forum | krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole


Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de