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

Forumthread: Spalte nach String durchsuchen

Spalte nach String durchsuchen
05.01.2006 09:22:30
andS
Hi,
ich habe ein Tabellenblatt "Daten". Dieses Blatt möchte ich in Spalte C nach einem String durchsuchen und jede Fundstelle in das Blatt "Start" kopieren.
Wie mache ich das?
Gruß Andi
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte nach String durchsuchen
05.01.2006 09:32:51
Ramses
Hallo
Probier mal
Sub Var_MultiSeek()
    'by Ramses
    'Sucht in der gesamten Mappe nach einem Begriff und kopiert die
    'gefundene Zeile in eine zu definfierende Ergebnistabelle
    Dim tarWks As Worksheet, srcWks As Worksheet
    Dim rng As Range
    Dim sAddress As String
    'Suchbegriff
    Dim sFind As Variant
    Dim cr As Long
    'Name_der_Zieltabelle
    'Bitte Anpassen !!!!
    Set tarWks = Worksheets("Tabelle3")
    'Name der zu durchsuchenden Tabelle
    Set srcWks = Worksheets("Tabelle1")
    cr = 65536
    If tarWks.Cells(cr, 1) = "" Then
        cr = tarWks.Cells(cr, 1).End(xlUp).Row
    End If
    If cr = 0 Then cr = 1
    'Suchbegriff definieren
    sFind = InputBox("Bitte Suchbegriff eingeben:")
    If sFind = "" Then Exit Sub
    'Suchbegriff auf Zelle definieren
    'sFind = Worksheets("Tabelle1").Range("A1")
    Set rng = srcWks.Range("C:C").Find(What:=sFind, _
        lookat:=xlPart, LookIn:=xlFormulas)
    If Not rng Is Nothing Then
        sAddress = rng.Address
        Do
            Application.GoTo rng, True
            'Für die Automation kann die "If"-Anweisung auskommentiert werden
            '---
            If MsgBox("Suchbegriff: " & sFind & ",gefunden in " _
                & srcWks.Name & ", " & rng.Address, vbYesNo + vbQuestion, "Weitersuchen ?") = vbNo Then Exit Sub
            '---
            srcWks.Rows(rng.Row).Copy Destination:=tarWks.Rows(cr)
            cr = cr + 1
            Set rng = srcWks.Cells.FindNext(after:=ActiveCell)
            If rng.Address = sAddress Then Exit Do
        Loop
    End If
    NextStart:
    MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Gruss Rainer
Anzeige
AW: Spalte nach String durchsuchen
05.01.2006 10:16:11
andS
Hi,
hatte mir das etwas einfacher gedacht:

Sub test()
'String aus Combobox
s = cboMasch.Value
Sheets("Daten").Select
For j = 2 To 60
If Cells(j, 3) = s Then
Sheets("Maschinenauswertung").Cells(22, 2).Value = "gefunden"
End If
Next
Sheets("Maschinenauswertung").Select
End Sub

Leider läuft's so nicht...
Was muss ich da ändern?
Gruß Andi
Anzeige
AW: Spalte nach String durchsuchen
05.01.2006 10:26:39
Ramses
Hallo
du hattest eine Frage, die habe ich beantwortet.
Ich habe keine Zeit alle Möglichkeiten durchzuspielen um herauszufinden warum DEIN Code nicht funktioniert.
Ausserdem erfüllt dein Code nicht die grundlegenden Anforderungen, die deiner eigenen Frage zugrunde liegen.
Gruss Rainer
Anzeige
AW: Spalte nach String durchsuchen
05.01.2006 10:34:45
andS
Hi,
bitte sei mir nicht böse, aber dein Code ist mir etwas zu komplex... Außerdem steht er (fast) so in den FAQ...
Es geht auch einfacher:
Wert in Spalte C finden:

Sub test()
For j = 3 To 60
If Cells(j, 3).Value = "test" Then
Cells(j, 3).Select
Selection.Interior.ColorIndex = 3
End If
Next
End Sub

Ist eventuell nicht so sauber, aber läuft...
Außerdem möchte ich mit einer direkten Zuweisung arbeiten...
Ich muss den Code auf meine Bedürfnisse anpassen, daher brauche ich das Verständnis...
Außerdem kann ich nicht meine ganzen Anforderungen (String aus Combobox, mehrere Zellen kopieren etc.) in die Frage packen, da sie dann wahrscheinlich eh nicht beantwortet werden würde!?
Vielleicht hat ja jemand anders Zeit und möchte mir helfen:
s = cboMasch.Value
Sheets("Daten").Select
With ActiveSheet
For j = 3 To 60
If Cells(j, 3).Value = s Then
Cells(j, 3).Select
'Selection.Interior.ColorIndex = 3
Sheets("Maschinenauswertung").Cells(22, 2).Value = Cells(j, 3).Value
End If
Next
End With
Sheets("Maschinenauswertung").Select
Danke für jede Hilfe.
Gruß Andi
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

Spalte nach String durchsuchen in Excel


Schritt-für-Schritt-Anleitung

Um eine Spalte in Excel nach einem bestimmten String zu durchsuchen, kannst du den folgenden VBA-Code verwenden. Dieser Code sucht in der Spalte C des Arbeitsblatts "Daten" nach einem eingegebenen Suchbegriff und kopiert die gesamten Zeilen mit entsprechenden Fundstellen in das Arbeitsblatt "Start".

Sub Var_MultiSeek()
    Dim tarWks As Worksheet, srcWks As Worksheet
    Dim rng As Range
    Dim sAddress As String
    Dim sFind As Variant
    Dim cr As Long

    Set tarWks = Worksheets("Start")
    Set srcWks = Worksheets("Daten")
    cr = 65536

    If tarWks.Cells(cr, 1) = "" Then
        cr = tarWks.Cells(cr, 1).End(xlUp).Row
    End If

    If cr = 0 Then cr = 1

    sFind = InputBox("Bitte Suchbegriff eingeben:")
    If sFind = "" Then Exit Sub

    Set rng = srcWks.Range("C:C").Find(What:=sFind, lookat:=xlPart, LookIn:=xlFormulas)
    If Not rng Is Nothing Then
        sAddress = rng.Address
        Do
            srcWks.Rows(rng.Row).Copy Destination:=tarWks.Rows(cr)
            cr = cr + 1
            Set rng = srcWks.Cells.FindNext(after:=rng)
            If rng.Address = sAddress Then Exit Do
        Loop
    End If
    MsgBox "Keine neue Fundstelle!"
End Sub

Häufige Fehler und Lösungen

  1. Fehler: "Variable nicht definiert"

    • Überprüfe, ob alle Variablen korrekt deklariert sind. Achte darauf, dass Dim für jede Variable verwendet wird.
  2. Fehler: "Suchbegriff nicht gefunden"

    • Stelle sicher, dass der Suchbegriff exakt eingegeben wurde. Prüfe auch, ob die Spalte C tatsächlich Daten enthält.
  3. Fehler: "Bereich nicht gefunden"

    • Achte darauf, dass das Arbeitsblatt "Daten" existiert und die Range korrekt angegeben ist.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die integrierte Excel-Funktion FILTER (ab Excel 365) nutzen, um Werte in einer bestimmten Spalte zu filtern:

=FILTER(Daten!C:C, Daten!C:C="Suchbegriff")

Diese Methode ist einfach zu implementieren und erfordert keine Programmierung.


Praktische Beispiele

Beispiel 1: Suche nach einem spezifischen Wert

Sub Test()
    Dim s As String
    s = "test" ' Hier den gesuchten String anpassen
    For j = 3 To 60
        If Cells(j, 3).Value = s Then
            Cells(j, 3).Interior.ColorIndex = 3 ' Markiere die Zelle rot
        End If
    Next
End Sub

Beispiel 2: String aus einer ComboBox suchen

Sub TestCombo()
    Dim s As String
    s = cboMasch.Value
    For j = 3 To 60
        If Cells(j, 3).Value = s Then
            Sheets("Maschinenauswertung").Cells(22, 2).Value = Cells(j, 3).Value
        End If
    Next
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende With-Anweisungen, um den Code lesbarer zu machen und die Leistung zu verbessern.
  • Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler elegant zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich die Suche auf mehrere Spalten erweitern? Du kannst die .Find-Methode in einer Schleife für jede gewünschte Spalte aufrufen.

2. Kann ich den Suchbegriff direkt in den Code einfügen? Ja, du kannst den Suchbegriff direkt in der Variable sFind definieren, anstatt ihn über InputBox abzufragen.

3. Wie gehe ich mit Groß- und Kleinschreibung um? Die Find-Methode ist standardmäßig nicht case-sensitive. Wenn du die Suche auf die Groß- und Kleinschreibung beschränken möchtest, setze das Argument MatchCase auf True.

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