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.

Sucheergebnisse anzeigen und alle anderen Zeilen löschen
#1
Schönen guten Abend,

habe noch eine weiter Frage und hoffe, dass ich dieses super Forum nicht überstrapaziere :17: 

Ich möchte in einer 300 Zeilen Tabelle in Spalte D nach einem bestimmten Suchbegriff suchen, in der auch eine Suchanfrage mit * möglich ist. Also wenn ich Auto* eingebe, das alle Ergebnisse aus Spalte D die mit Auto anfangen angezeigt werden wie z.B. Autoblech/Autostoßstange usw.

Zudem sollen alle anderen Zeilen, in dem nicht in Spalte C der gewünschte Suchbegriff verfügbar ist ausgeblendet werden. Ich denke sowas geht wohl nur über VBA, oder? Kennt jemand vielleicht rein zufällig so eine VBA-Musterprogrammierung??

Nach der Suche soll wieder alles Zeilen für die nächste Suche verfügbar sein. Oh je, ich glaube dies ist wohl zu kompliziert, oder?

Liebe Grüße
Andi
Antworten Top
#2
Hallo Andi

Du könntest auch einfach den Filter benutzen (Beginnt mit...).
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
Hallöchen,

den Filter findest Du im Reiter Daten. Wenn Du ihn aktivierst, kommt über der ( den) Spalte(n) ein Aufklappbutton. Dort bekommst Du im Menüpunkt "Textfilter" verschiedene Möglichkeiten, neben "Beginnt mit" auch "Enthält", "Endet.." und andere. Beim benutzerdefinierten Filter kann man dann noch Bedingungen kombinieren.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Danke für die Tipps. Ich suche allerdings eher eine Art eingabefeld, in dem ich den Suchbegriff eingebe und dann nach Enter alle relevanten Zeilen übrig bleiben. Kann man diesen Textfilter irgendwie einer Zelle zuordnen, die dann als Eingabefeld dienen soll?
Antworten Top
#5
Hi Andi,

(05.11.2015, 12:53)Andi1965 schrieb: Danke für die Tipps. Ich suche allerdings eher eine Art eingabefeld, in dem ich den Suchbegriff eingebe und dann nach Enter alle relevanten Zeilen übrig bleiben. Kann man diesen Textfilter irgendwie einer Zelle zuordnen, die dann als Eingabefeld dienen soll?

dafür würde ich ein Makro verwenden.

Dazu einfach die Makro-Aufzeichnung starten, die Aktion des Filterns ein Mal ausführen, dann die Aufzeichnung beenden.

Das Makro hier posten und die Zelle angeben, die als Eingabefeld dienen soll. Dann können die Helfer das Makro um Überflüssiges bereinigen und es verallgemeinern.
Antworten Top
#6
Hallo Andi,

hier wird der Autofilter Spalte D über die Zelle D1 gesteuert.
Der Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes.

Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
   If .Address(0, 0) = "D1" Then 'entsprechende Zelladresse angeben
     .Activate
     If Len(.Value) Then 'Wenn Zelle D1 nicht leer ist
       'Autofilterkriterium wird aus Wert von D1 erzeugt
       Me.Cells.AutoFilter Field:=4, Criteria1:="=" & .Value & "*"
     Else  'Wenn Zelle D1 leer ist
       'Autofilter dieser Spalte wird auf "Alle" gesetzt
       Me.Cells.AutoFilter Field:=4
     End If
   End If
 End With
End Sub

Gruß Uwe
Antworten Top
#7
(05.11.2015, 14:35)Kuwer schrieb: Hallo Andi,

hier wird der Autofilter Spalte D über die Zelle D1 gesteuert.
Der Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes.

Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
   If .Address(0, 0) = "D1" Then 'entsprechende Zelladresse angeben
     .Activate
     If Len(.Value) Then 'Wenn Zelle D1 nicht leer ist
       'Autofilterkriterium wird aus Wert von D1 erzeugt
       Me.Cells.AutoFilter Field:=4, Criteria1:="=" & .Value & "*"
     Else  'Wenn Zelle D1 leer ist
       'Autofilter dieser Spalte wird auf "Alle" gesetzt
       Me.Cells.AutoFilter Field:=4
     End If
   End If
 End With
End Sub

Gruß Uwe

Hallo Uwe,

wow, herzlichen Dank für den VBA Codetext. habe es gleich ausprobiert, aber es kommt immer ein laufzeitfehler. Anhänged ist meine Testdatei. Vielleicht wärst Du so freundlich nochmal kurz drüberzuschauen?
vg
Andi


Angehängte Dateien
.xlsm   test1.xlsm (Größe: 14,6 KB / Downloads: 2)
Antworten Top
#8
Hallo Andi,

für Deine rudimentäre "Beispieldatei" müsste es so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address(0, 0) = "D1" Then 'entsprechende Zelladresse angeben
.Activate
If Len(.Value) Then 'Wenn Zelle D1 nicht leer ist
'Autofilterkriterium wird aus Wert von D1 erzeugt
.EntireColumn.AutoFilter Field:=1, Criteria1:="=" & .Value & "*"
Else 'Wenn Zelle D1 leer ist
'Autofilter dieser Spalte wird auf "Alle" gesetzt
.EntireColumn.AutoFilter Field:=1
End If
End If
End With
End Sub

Gruß Uwe
Antworten Top
#9
(05.11.2015, 15:49)Kuwer schrieb: Hallo Andi,

für Deine rudimentäre "Beispieldatei" müsste es so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  If .Address(0, 0) = "D1" Then 'entsprechende Zelladresse angeben
    .Activate
    If Len(.Value) Then 'Wenn Zelle D1 nicht leer ist
      'Autofilterkriterium wird aus Wert von D1 erzeugt
      .EntireColumn.AutoFilter Field:=1, Criteria1:="=" & .Value & "*"
    Else  'Wenn Zelle D1 leer ist
      'Autofilter dieser Spalte wird auf "Alle" gesetzt
      .EntireColumn.AutoFilter Field:=1
    End If
  End If
End With
End Sub

Gruß Uwe

vielen, vielen Dank  jetzt klappt es. super, dass dann beim löschen der Zelle auch der Filter rausgeschlöscht wird und alle Zellen wieder erscheinen. Super :19: :19: :19:
Antworten Top
#10
(05.11.2015, 16:26)Andi1965 schrieb: vielen, vielen Dank  jetzt klappt es. super, dass dann beim löschen der Zelle auch der Filter rausgeschlöscht wird und alle Zellen wieder erscheinen. Super :19: :19: :19:

Hallo Uwe,

jetzt dacht ich, ich kann den Code auch einfach für andere Spalten im gleichen Tabellenblatt einbauen dann statt "D1" in z.B. Spalte "E1" ändern, aber so simple ist es wohl nciht, weil es funktioniert nicht. Ich wage es kaum zu fragen, aber wenn es dir keine umstände macht, wäre über eine Tipp sehr dankbar.
vg
Andi
Antworten Top


Gehe zu:


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