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

suchen und zeile ausgeben

Forumthread: suchen und zeile ausgeben

suchen und zeile ausgeben
09.04.2004 01:44:12
tim
hallo
ich brauche eure hilfe und zwar beim durchsuchen verschiedener tabellenblätter('daten', 'personen'). hier soll jeweils im bereich a2:m500 nach einem weet, der über eine inputbox eingegeben wird, gesucht werden.
die ergebnisse (ganze zeile des gefundenen wertes) sollen im tabellenblatt 'suchen' aufgelistet werden.
bei jeder neuen suche sollte das tabellenblatt vorgängig geleert werden.
kann mir jemand weiterhelfen?
vielen dank
tim
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und zeile ausgeben
09.04.2004 10:29:04
tim
@nepumuk
hi
meine erneute fragebezieht sich auf eine andere suchart. der code von dir ist nach wie vor genau das, wa ich brauchte. mein problem ist jetzt aber, dass ich auch eine offene datei durchsuchen will.
bsp:
ich habe datei '1', '2' und '3'. in datei '3' habe ich den code eingefügt, um '1' + '2' geschlossen zu durchsuchen. wenn ich im code aber auch die datei '3' hinzufüge, dann wird sie nach abschluss der suche geschlossen und ich habe keine resultate.
dies war der grund meiner erneuten frage. wenn diese beiden sucharten aber in einem schritt getätigt werden können, wäre auch dies eine optimale lösung.
sorry für die verwirrung... :-)
gruss tim
p.s. ist es möglich mit einem makro einen makrocode abzuändern?
z.b. im vorliegenden code
- strDateiname = "test" & Choose(intIndex, "1", "2") & ".xls"
abändern in
- strDateiname = "daten" & Choose(intIndex, "03", "04") & ".xls"
vielen dank
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Excel-Daten durchsuchen und Zeilen ausgeben


Schritt-für-Schritt-Anleitung

Um in Excel eine Datei zu durchsuchen und die gesamte Zeile eines gefundenen Wertes auszugeben, kannst du folgenden VBA-Code verwenden. Dieser Code durchsucht die Tabellenblätter 'daten' und 'personen' nach einem Wert, der über eine Inputbox eingegeben wird, und listet die Ergebnisse im Tabellenblatt 'suchen' auf.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein:

    • Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub ZeileAusgeben()
       Dim wsDaten As Worksheet
       Dim wsPersonen As Worksheet
       Dim wsSuchen As Worksheet
       Dim Suchwert As String
       Dim letzteZeile As Long
       Dim Zeile As Long
       Dim i As Long
    
       Set wsDaten = ThisWorkbook.Sheets("daten")
       Set wsPersonen = ThisWorkbook.Sheets("personen")
       Set wsSuchen = ThisWorkbook.Sheets("suchen")
    
       ' Eingabe des Suchwerts
       Suchwert = InputBox("Bitte Suchwert eingeben:", "Wert suchen")
    
       ' Vorherige Ergebnisse löschen
       wsSuchen.Cells.Clear
    
       ' Durchsuche das Tabellenblatt 'daten'
       letzteZeile = wsDaten.Cells(wsDaten.Rows.Count, 1).End(xlUp).Row
       For i = 2 To letzteZeile
           If WorksheetFunction.CountIf(wsDaten.Rows(i), Suchwert) > 0 Then
               wsDaten.Rows(i).Copy wsSuchen.Cells(wsSuchen.Rows.Count, 1).End(xlUp)(2)
           End If
       Next i
    
       ' Durchsuche das Tabellenblatt 'personen'
       letzteZeile = wsPersonen.Cells(wsPersonen.Rows.Count, 1).End(xlUp).Row
       For i = 2 To letzteZeile
           If WorksheetFunction.CountIf(wsPersonen.Rows(i), Suchwert) > 0 Then
               wsPersonen.Rows(i).Copy wsSuchen.Cells(wsSuchen.Rows.Count, 1).End(xlUp)(2)
           End If
       Next i
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus:

    • Gehe zu Entwicklertools > Makros > wähle ZeileAusgeben und klicke auf Ausführen.

Mit diesem Code kannst du effektiv eine Excel-Datei durchsuchen und die gesamte Zeile ausgeben, in der der gesuchte Wert gefunden wurde.


Häufige Fehler und Lösungen

  • Fehler: "Typkonflikt"

    • Überprüfe, ob der Suchwert wirklich in den Zellen vorhanden ist. Ein Fehler tritt häufig auf, wenn der eingegebene Wert in einem anderen Datentyp vorliegt.
  • Fehler: "Das Blatt 'suchen' existiert nicht"

    • Stelle sicher, dass das Tabellenblatt 'suchen' existiert, bevor du das Makro ausführst.
  • Fehler: "Makros sind deaktiviert"

    • Aktiviere die Makros in den Excel-Optionen, um das Skript auszuführen.

Alternative Methoden

Falls du den Suchvorgang ohne VBA durchführen möchtest, kannst du die SVERWEIS-Funktion verwenden. Diese ist jedoch auf die Suche nach einem Wert in einer Tabelle beschränkt und gibt keine gesamte Zeile aus. Für eine erweiterte Suche kannst du die FILTER-Funktion in Excel 365 nutzen, um basierend auf bestimmten Kriterien mehrere Zeilen zu extrahieren.


Praktische Beispiele

Beispiel 1: Wert in Tabelle suchen und Zeile ausgeben

Angenommen, du suchst den Namen "Max" in den Tabellenblättern 'daten' und 'personen'. Der oben stehende VBA-Code wird alle Zeilen mit "Max" im Tabellenblatt 'suchen' auflisten.

Beispiel 2: Unterschiedliche Sucharten

Wenn du auch eine offene Datei durchsuchen möchtest, kannst du den Code anpassen, indem du die Arbeitsmappen referenzierst. Stelle sicher, dass du die Dateinamen korrekt angibst.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False zu Beginn deines Codes, um das Flackern des Bildschirms zu vermeiden, und setze es am Ende wieder auf True.
  • Füge Fehlerbehandlungsroutinen ein, um unerwartete Fehler abzufangen und dem Benutzer hilfreiche Fehlermeldungen anzuzeigen.
  • Experimentiere mit Advanced Filter, um komplexere Suchabfragen durchzuführen.

FAQ: Häufige Fragen

1. Kann ich den Code so anpassen, dass nur bestimmte Spalten durchsucht werden? Ja, du kannst die CountIf-Funktion so anpassen, dass sie nur auf bestimmte Spalten verweist, z.B. wsDaten.Range("A2:A500").

2. Wie kann ich das Suchfeld anpassen, um mehrere Werte gleichzeitig zu suchen? Du könntest die Inputbox so erweitern, dass sie durch Kommas getrennte Werte akzeptiert und dann die Schleife entsprechend anpassen.

3. Ist dieser Code in allen Excel-Versionen einsetzbar? Der bereitgestellte VBA-Code sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren.

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