Registriert seit: 22.02.2016
Version(en): 2010
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 :)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 22.02.2016
Version(en): 2010
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.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 22.02.2016
Version(en): 2010
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?
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 22.02.2016
Version(en): 2010
Die 1. Variante gibt einen Laufzeitfehler aus,
Die 2. Variante funktioniert.
Klasse damit komme ich klar, vielen Dank :21: :18: