Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus Tabelle auslesen nach Suchkriterium

Daten aus Tabelle auslesen nach Suchkriterium
09.12.2004 14:31:02
TOM
Daten aus Tabelle auslesen nach Suchkriterium
Hallo,
ich möchte mittels Schaltfläche einen bestimmten Suchbegriff in Zelle Tabelle1!F6 eingegeben in der Tabelle2!B:B suchen lassen.
Bei Auffinden einzelner oder mehrerer übereinstimmender Werte sollen die Daten in eine neue Tabelle oder in Tabelle3 geschrieben werden - aber alle zum gefundenen Datensatz gehörenden Parameter - also die ganze Zeile des gefundenen Begriffes.
Bei Versuchen mit VBA-Codes zum Auslesen konnte ich die Suche nicht auf eine ganze Spalte erweitern und die anschließende Ausgabe in einer neuen oder extra Tabelle funktioniert auch nicht so.
Wer kann mir helfen?
Für Eure Hilfe bedanke ich mich schon jetzt!
TOM
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Tabelle auslesen nach Suchkriterium
Jan
Hi TOM,
Dieses Problem dürfte bei Deinem Level in VBA doch kein Problem sein!?
Vielleicht stellst Du mal ein Beispiel mit Deinem Code ins Forum.
Jan
AW: Daten aus Tabelle auslesen nach Suchkriterium
09.12.2004 15:24:21
TOM
Hallo Jan,
Du wirst bestimmt den Spruch kennen: "GUT ist relativ"!!! Deshalb oute ich mich hier, dass ich dieses Problem nicht allein lösen kann. Bist Du in der Lage, das Problem mit mir zu lösen? Dann mal ran mit der Lösung, mir fehlen einfach die richtigen VBA´s.
TOM
Anzeige
AW: Daten aus Tabelle auslesen nach Suchkriterium
Jan
Hi TOM,
Eine Beispieltabelle wäre zwar sinnvoll, aber ich habe mal ein VBA-Code
zur Lösung des Problems, wie ich es verstanden habe.
Vorerst binde es in ein Modul im VBE ein und weise es einer Schaltfläche zu.
Teste es mal durch.

Sub Werteübernehmen()
Dim ws1, ws2, ws3 As Worksheet
Set ws1 = Worksheets("Tabelle1")
Set ws2 = Worksheets("Tabelle2")
Set ws3 = Worksheets("Tabelle3")
anz = ws1.Cells(65536, 1).End(xlUp).Row
anz1 = ws2.Cells(65536, 2).End(xlUp).Row
ze = ws3.Cells(65536, 2).End(xlUp).Row
If anz2 >= 2 Then
ws3.Range("a2:aa" & anz1).Delete
End If
z1 = 0
For z = 1 To anz1
If ws1.Cells(6, 6) = ws2.Cells(z, 2) Then
ws2.Rows(z).Copy ws3.Cells(ze + 1, 1)
ze = ze + 1
End If
Next
End Sub

Wie Du sicherlich aus dem Code erkennen kannst, arbeite ich mit 3 Tabellenblättern
mit der Standardbezeichnung: Tabelle1, Tabelle2 und Tabelle3.
Das Suchkriterium wird aus der Zelle F6 des Tabellenblattes Tabelle1 genommen.
In der Spalte B des Tabellenblattes 2 wird gesucht und die komplette Zeile bei Übereinstimmung in das Tabellenblatt 3 übergeben.
Jan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Excel-Tabelle auslesen nach Suchkriterium


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt oder öffne dein bestehendes Dokument mit den Tabellenblättern, die du benötigst (Tabelle1, Tabelle2, Tabelle3).

  2. Füge eine Schaltfläche hinzu:

    • Gehe zu "Entwicklertools" > "Einfügen" > wähle eine Schaltfläche aus.
    • Platziere sie auf deinem Arbeitsblatt.
  3. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  4. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsblatt)" > "Einfügen" > "Modul".
  5. Füge den VBA-Code ein:

    • Kopiere den folgenden Code in das Modul:
    Sub Werteübernehmen()
       Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
       Set ws1 = Worksheets("Tabelle1")
       Set ws2 = Worksheets("Tabelle2")
       Set ws3 = Worksheets("Tabelle3")
       anz = ws1.Cells(65536, 1).End(xlUp).Row
       anz1 = ws2.Cells(65536, 2).End(xlUp).Row
       ze = ws3.Cells(65536, 2).End(xlUp).Row
       If anz2 >= 2 Then
           ws3.Range("a2:aa" & anz1).Delete
       End If
       z1 = 0
       For z = 1 To anz1
           If ws1.Cells(6, 6) = ws2.Cells(z, 2) Then
               ws2.Rows(z).Copy ws3.Cells(ze + 1, 1)
               ze = ze + 1
           End If
       Next
    End Sub
  6. Weise den Code der Schaltfläche zu:

    • Klicke mit der rechten Maustaste auf die Schaltfläche und wähle "Makro zuweisen".
    • Wähle Werteübernehmen aus der Liste und klicke auf "OK".
  7. Teste das Skript:

    • Gib einen Suchbegriff in Zelle Tabelle1!F6 ein und klicke auf die Schaltfläche. Überprüfe, ob die Daten in Tabelle3 korrekt ausgegeben werden.

Häufige Fehler und Lösungen

  • Fehler: „Objektvariablen nicht gesetzt“

    • Lösung: Stelle sicher, dass die Namen der Arbeitsblätter genau übereinstimmen. Überprüfe die Schreibweise.
  • Fehler: „Index außerhalb des gültigen Bereichs“

    • Lösung: Vergewissere dich, dass die angegebenen Tabellen existieren und korrekt benannt sind.
  • Daten werden nicht gefunden

    • Überprüfe, ob das Suchkriterium in der richtigen Zelle und im richtigen Format eingegeben wurde.

Alternative Methoden

  • FILTER-Funktion (Excel 365 und Excel 2021):

    • Wenn du eine neuere Excel-Version verwendest, kannst du die FILTER-Funktion nutzen, um Daten aus einer Tabelle auslesen:
    =FILTER(Tabelle2!A:Z, Tabelle2!B:B=Tabelle1!F6)
  • SVERWEIS-Funktion:

    • Du kannst auch die SVERWEIS-Funktion verwenden, um spezifische Daten aus einer Tabelle auszulesen:
    =SVERWEIS(F6, Tabelle2!B:Z, 2, FALSCH)

Praktische Beispiele

  • Beispiel 1: Einfache Suche

    • Angenommen, du hast eine Liste von Produkten in Tabelle2 und möchtest die Details zu einem bestimmten Produkt in Tabelle1!F6 suchen.
  • Beispiel 2: Mehrere Suchkriterien

    • Du kannst den VBA-Code so anpassen, dass er zusätzlich nach weiteren Kriterien sucht, indem du weitere If-Bedingungen hinzufügst.

Tipps für Profis

  • Code optimieren: Reduziere die Anzahl der End(xlUp)-Aufrufe, um die Geschwindigkeit zu erhöhen.

  • Datenvalidierung: Verwende Datenvalidierung in Tabelle1!F6, um sicherzustellen, dass nur gültige Suchkriterien eingegeben werden.

  • Error Handling: Füge Error-Handling in deinen VBA-Code ein, um unerwartete Fehler abzufangen.


FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um nur bestimmte Spalten zu kopieren? Du kannst die Copy-Methode anpassen, indem du nur die gewünschten Spalten angibst, z.B. ws2.Range("A" & z & ":C" & z).Copy.

2. Funktioniert dieser Code in Excel Online? Der VBA-Code funktioniert nicht in Excel Online, da VBA nur in der Desktop-Version von Excel verfügbar ist.

3. Kann ich die Suchfunktion auf mehrere Spalten erweitern? Ja, du kannst weitere If-Bedingungen im Code hinzufügen, um auch in anderen Spalten zu suchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige