Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Überprüfen ob Wert in Filter existiert?
#1
Hallo zusammen,

vielen Dank für die Aufnahme.

Ich habe ein Wert in einer Zelle (nennen wir Sie A1) und möchte diese an einem Filter übergeben. Jedoch möchte ich vorher überprüfen, ob es den Wert überhaupt gibt.
Wenn ich einen Wert an den Filter übergebe, den es nicht gibt, passiert nur Murks.


ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:=Sheets(1).Range("A1").Value



Ich habe mir überlegt den Check mit einem SVerweis auf die ganze Tabelle anzuwenden, jedoch ist die Tabelle ziemlich groß und auch die Länge variiert.
Der Filter enthält jedoch nur etwa mögliche 100 Einträge.


Vielen Dank :)
Antworten Top
#2
Hallöchen,

Du könntest vorher die Spalte mit ZÄHLENWENN bzw. COUNTIF auf das Vorhandensein des Wertes prüfen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Danke,

leider noch nicht so ganz. weiß noch nicht wie ich im Makro ein bauen soll.

COUNTIFS(Sheets(1).Range("A7:A150");Sheets(1).Range("A1").Value)

funktioniert irgendwie nicht.
Kannst du  mir noch mal bitte auf die Sprünge helfen.
Antworten Top
#4
Hallo,

nach folgendem Muster:


Code:
If Application.CountIf(ActiveSheet.ListObjects("Tabelle1").Columns("A"), Sheets(1).Range("A1").Value) Then
 'hier der Code, was passieren soll wenn vorhanden
Else
 MsgBox Sheets(1).Range("A1").Value & " in Spalte A der Tabelle1 nicht vorhanden"
End If
Gruß Atilla
Antworten Top
#5
hmm das sieht verdammt gut aus. Danke   Ergibt Aber Leider ein Laufzeitfehler.

Der Filter ist in Der Zelle A6 Und die eigentliche Tabelle beginnt ab A7. Könnte das was mit dem Laufzeitfehler zu tun haben?
Antworten Top
#6
Hallo,

bin mit Listobjecten nicht so vertraut, deswegen fehlte noch etwas:


Code:
Sub test()
If Application.CountIf(ActiveSheet.ListObjects("Tabelle1").ListColumns("A").DataBodyRange, Sheets(1).Range("A1").Value) Then
'hier der Code, was passieren soll wenn vorhanden
Else
MsgBox Sheets(1).Range("A1").Value & " in Spalte A der Tabelle1 nicht vorhanden"
End If
End Sub


Teheoretisch ginge es auch so:


Code:
Sub test2()
If Application.CountIf(Columns("A"), Sheets(1).Range("A1").Value) Then
'hier der Code, was passieren soll wenn vorhanden
Else
MsgBox Sheets(1).Range("A1").Value & " in Spalte A der Tabelle1 nicht vorhanden"
End If
End Sub


vorausgesetzt es sind unter und über der tabelle keine anderen Daten, die in die Quere kommen können.
Gruß Atilla
Antworten Top
#7
Die 1. Variante gibt einen Laufzeitfehler aus,
Die 2. Variante funktioniert.

Klasse damit komme ich klar, vielen Dank :21: :18:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste