Suchmaske bei Excel 2019?

3 Antworten

z.B. so

Verketten von Nach- und Vornamen ist sinnvoll, wenn sich Familiennamen wiederholen

Mit dem *"* kannst Du bei Bedarf die Namenssuche verkürzen

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung
 - (Computer, Microsoft, IT)

Was spricht denn dagegen einfach die integrierte Filterfunktion von Excel zu benutzen? Der Schritt über ein zusätzliches Tabellenblatt und VBA erscheint mir unnötig aufwändig.


Ninchen0802 
Beitragsersteller
 27.11.2020, 10:26

Es sind an die 400 Spalten und ich möchte nur 20 davon wissen, bzw möchte mein Chef nicht alles durchschauen und ich habe nicht die Zeit ihm das jedes Mal rauszusuchen wenn er es schnell braucht

1
daCypher  27.11.2020, 11:05
@Ninchen0802

Ich hab mal auf die Schnelle was zusammengezimmert, was du evtl. als Basis für dein Vorhaben benutzen kannst. Die Felder, nach denen gesucht werden soll und die Spalten, die kopiert werden sollen, musst du natürlich dementsprechend anpassen.

Allgemein würde ich aber empfehlen Excel nicht als Datenbank zu verwenden. Mit einem Datenbankprogramm wäre das ganze eine simple Abfrage gewesen.

Sub Suchen()
  Dim Suchbereich As Range
  Dim Kopierbereich As Range
  Dim SucheName As String
  Dim SucheVorname As String
  Dim SucheDG As String
  Dim Datentabelle As Worksheet
  Dim Filtertabelle As Worksheet
   
  Set Datentabelle = Sheets(1) ' Falls die Tabelle, in der gesucht werden soll,
                 ' nicht die erste ist, musst du die Zahl entsprechend anpassen
                 ' oder den Namen der Tabelle in Anführungszeichen reinschreiben.
                 
  Set Filtertabelle = Sheets(2) ' hier genauso
   
  Set Suchbereich = Datentabelle.UsedRange
                      
  Datentabelle.AutoFilter.ShowAllData
   
  SucheName = Filtertabelle.Range("A2").Value   ' Hier musst du natürlich auch die richtige Herkunft eintragen
  SucheVorname = Filtertabelle.Range("B2").Value
  SucheDG = Filtertabelle.Range("C2").Value
   
  If SucheName <> "" Then
    Suchbereich.AutoFilter Field:=4, Criteria1:=SucheName  ' Hier auch. Bei Field muss halt drinstehen,
                                ' in welcher Spalte des Suchbereichs gesucht werden soll
  End If
   
  If SucheVorname <> "" Then
    Suchbereich.AutoFilter Field:=8, Criteria1:=SucheVorname
  End If
   
  If SucheDG <> "" Then
    Suchbereich.AutoFilter Field:=10, Criteria1:=SucheDG
  End If
   
  Set Kopierbereich = Intersect(Suchbereich, Datentabelle.Range("A:A, D:D, G:G, P:P"))
            ' In dem Range musst du halt die Spalten reinschreiben, die kopiert werden sollen.
             
  Application.CutCopyMode = False
  Kopierbereich.Copy
  Filtertabelle.Select
  Filtertabelle.Range("A4").Select
  Filtertabelle.Paste
End Sub
1
Ninchen0802 
Beitragsersteller
 27.11.2020, 11:16
@daCypher

Unglaublich lieb! Danke! Ich werde mich sofort dran versuchen, basteln und mein Wissen dadurch erweitern! Danke :*

1
daCypher  30.11.2020, 08:20
@Ninchen0802

Kannst du das genauer spezifizieren? Was genau funktioniert nicht richtig? Gibt es irgendwelche Fehlermeldungen, wenn ja, welche? Bei welcher Zeile bleibt der Code hängen? Sind bei dir evtl. Makros komplett deaktiviert? Hast du den Code in ein Modul oder direkt in ein Arbeitsblatt eingefügt?

Ich hab den Code bei mir mit einem echten Dokument getestet. In der ersten Tabelle die Daten und in der zweiten Tabelle die Suchmaske und das Ergebnis. Das hat funktioniert. Je nachdem, wie die Struktur bei dir aufgebaut ist, muss man aber evtl. hier und da was am Code anpassen.

0

Du kannst filtern oder

Die die Daten per SVerweis anzeigen lassen.

Woher ich das weiß:eigene Erfahrung