Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte nach Teilstring durchsuchen mit VBA

Forumthread: Spalte nach Teilstring durchsuchen mit VBA

Spalte nach Teilstring durchsuchen mit VBA
29.10.2012 18:23:05
Günther
Hallo zusammen,
ich möchte mit VBA in Spalte A nach Teilstrings suchen und alle Treffer fortlaufend in Spalte E ausgeben.
- in Spalte A von A1:A1000 stehen Namen und Zahlen
- in Zelle C2 soll der Suchbegriff eingegeben werden (Teilstring eines Wortes oder eines Wertes)
- in Spalte E von E1:E? sollen alle Treffer der Suche fortlaufend aufgeführt werden
Vielen Dank für eure Hilfe.
Gruß
Günther

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Spalte nach Teilstring durchsuchen mit VBA
29.10.2012 19:19:12
ransi
Hallo
Versuch mal sowas:
Option Explicit


Public Sub test()
    Dim arr
    Dim out
    With Sheets("Tabelle1")
        arr = .Range("a1:A10000")
        arr = WorksheetFunction.Transpose(arr)
        out = Filter(arr, .Range("C1").Value, True, 1) '0 für A<>a,1 für A=a
        If UBound(out) > -1 Then
            .Range("E1").Resize(UBound(out) + 1) = WorksheetFunction.Transpose(out)
        End If
    End With
End Sub


ransi

Anzeige
AW: Spalte nach Teilstring durchsuchen mit VBA
29.10.2012 19:55:17
Günther
Hallo ransi,
Danke für die schnelle Antwort.
Genau so hab ich mir das vorgestellt.
Wie muss ich den Code ergänzen um das Makro durch die Entertaste (Ziffern und Zahlenblock)
zu starten?
Danke nochmals
Gruß
Günther

hat sich erledigt. Danke nochmal. O.T.
29.10.2012 21:07:52
Günther
o.T.
;
Anzeige
Anzeige

Infobox / Tutorial

Spalte nach Teilstring durchsuchen mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA nach Teilstrings in einer bestimmten Spalte zu suchen und die Treffer in einer anderen Spalte auszugeben, kannst Du folgenden Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Option Explicit

Public Sub test()
    Dim arr
    Dim out
    With Sheets("Tabelle1")
        arr = .Range("A1:A1000")
        arr = WorksheetFunction.Transpose(arr)
        out = Filter(arr, .Range("C2").Value, True, 1) '0 für A<>a, 1 für A=a
        If UBound(out) > -1 Then
            .Range("E1").Resize(UBound(out) + 1) = WorksheetFunction.Transpose(out)
        End If
    End With
End Sub
  1. Schließe den VBA-Editor.
  2. Gehe zurück zu Deinem Excel-Blatt und gebe den Teilstring, nach dem Du suchen möchtest, in Zelle C2 ein.
  3. Führe das Makro aus, um die Ergebnisse in Spalte E anzuzeigen.

Häufige Fehler und Lösungen

  • Problem: Das Makro wird nicht gefunden.

    • Lösung: Stelle sicher, dass Du das Makro im richtigen Arbeitsblatt ausgeführt hast und dass der Name des Arbeitsblattes korrekt im Code angegeben ist (z.B. "Tabelle1").
  • Problem: Keine Ergebnisse in Spalte E.

    • Lösung: Überprüfe, ob der Suchbegriff in Zelle C2 korrekt eingegeben wurde. Stelle sicher, dass die Daten in Spalte A tatsächlich den Teilstring enthalten.

Alternative Methoden

Wenn Du keine VBA-Lösung nutzen möchtest, kannst Du auch die Funktion FILTER in Excel verwenden (verfügbar in Excel 365):

  1. Gebe in Zelle E1 folgende Formel ein:
    =FILTER(A1:A1000, ISNUMBER(SEARCH(C2, A1:A1000)), "Keine Treffer")

    Diese Formel sucht nach dem Teilstring in Spalte A und gibt alle Treffer in Spalte E aus.


Praktische Beispiele

  • Beispiel 1: Suche nach dem Teilstring "Max" in einer Liste von Namen in Spalte A. Wenn in A1 "Max Mustermann" steht und Du "Max" in C2 eingibst, wird "Max Mustermann" in Spalte E ausgegeben.
  • Beispiel 2: Suche nach der Zahl "123" in einer Liste von Codes oder IDs. Wenn in A10 "ABC123XYZ" steht und Du "123" in C2 eingibst, wird "ABC123XYZ" in Spalte E angezeigt.

Tipps für Profis

  • Du kannst das Makro so anpassen, dass es automatisch ausgeführt wird, wenn Du einen Wert in Zelle C2 eingibst. Dafür musst Du das Worksheet-Change-Ereignis verwenden.
  • Experimentiere mit der SEARCH-Funktion in Excel, um die Suche flexibler zu gestalten, z.B. um nur nach bestimmten Zeichenfolgen zu suchen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro mit der Entertaste ausführen? Du kannst das Makro nicht direkt mit der Entertaste ausführen. Überlege, eine Schaltfläche in Dein Excel-Blatt einzufügen, die das Makro ausführt, wenn Du darauf klickst.

2. Funktioniert dieser Code in allen Excel-Versionen? Der bereitgestellte VBA-Code funktioniert in den meisten Versionen von Excel, die VBA unterstützen. Die FILTER-Formel funktioniert jedoch nur in Excel 365 oder Excel 2021.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige