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

Forumthread: Teilstring suchen und Address ausgeben

Teilstring suchen und Address ausgeben
26.12.2017 20:06:15
Ralf
Habe da 'mal eine Frage. Ich möchte zum Abschluss meines Berufslebens meine Kollegen mit einer kleinen VBA für Excel 2016 "beglücken".
Die bisher ausschließlich händische Arbeit für diese Aktion ist enorm zeitintensiv und langweilig, sowie, da ausschließlich manuelles Abtippen, fehlerträchtig.
Bin eigentlich mit dem Programm nahezu fertig, was mir noch fehlt, ist die Suche nach einem bestimmten Teilstring innerhalb eines Textes in einer beliebigen Tabellenzelle.
Konkret: Irgendwo in der Tabelle in einer Zelle steht der String: "RL v. 14.09.2017, RL-Nr. 19265 RL-Schein R/17381" wobei der Text nach "RL v." immer anders lautet.
Nun möchte ich die Zelle (Address?), in der sich der String befindet über den Teilstring "RL v." anzeigen lassen.
Wie kann ich das am besten realisieren?
Suche seit Tagen nach entsprechenden Hilfen in div. Foren - ohne Ergebnis :-(.
Spaltenweises Suchen habe ich gefunden, nur nichts für eine komplette Tabelle.
Geht da irgendwas mit .Find()?
Schon 'mal herzlichen Dank für jede Hilfe!!!!
Ralf
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 20:34:36
Sepp
Hallo Ralf,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub suchen()
Dim objRange As Object

With Sheets("Tabelle1") 'Tabellenname anpassen!
  Set objRange = .UsedRange.Find(What:="RL v.", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False, SearchFormat:=False)
  If Not objRange Is Nothing Then
    objRange.Select 'als Beispiel! objRange enthält die gefundene Zelle!
  End If
End With

Set objRange = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 22:16:40
Ralf
Hallo Sepp,
danke für deine Antwort. Habe mich bei meiner Frage wohl nicht "VBA-gerecht" ausgedrückt.
Ich hätte gerne als Ergebnis die Zellen-Adresse in der sich der String befindet, z.B. ($D$8).
Deine Lösung bringt mir mit der Variablen objRange scheinbar den kompletten Zelleninhalt als String und nicht die Zellen-Adresse.
Kannst du mir hier weiterhelfen?
Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 22:20:39
Sepp
Hallo Ralf,
ja und mit objRange.Address hast du die Adresse.
Wobei ich die Adresse nur ganz selten benötige, sondern gleich mit dem Range-Objekt weiterarbeite.
Gruß Sepp

Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 22:41:17
Ralf
Prima Sepp,
jetzt habe ich sogar 2 Lösungen, die mich beide weiterbringen.
Ich benötige die Adresse, da ich in der Tabelle alle Zeilen darüber löschen muss.
Geht sicherlich eleganter als mit dem Zwischenschritt des Auslesens der Zellen-Adresse, aber als Anfänger arbeite ich mich lieber Schritt für Schritt vorwärts, allzu viele Verschachtelungen verwirren mich nur.
Vielen Dank!
Ralf
Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 20:35:02
Sigi
Hallo Ralf,
vielleicht so?
Sub suchen()
Dim wks As Worksheet
Dim rngFind As Range, rngRows As Range
Dim sFind As String, sSearch As String
sSearch = "RL v. 14.09.2017, RL-Nr. 19265 RL-Schein R/17381" 'Text könnte auch in einer  _
anderen Tabelle stehen. z.B. sSearch = Tabelle2.cells(1,1)
Set rngFind = Cells.Find(sSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
sFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = sFind Then Exit Do
Loop
End If
If rngFind Is Nothing Then
MsgBox "Suchbegriff wurde nicht gefunden!"
Else
MsgBox "Suchbegriff wurde in Zeile" & rngFind.Address & " gefunden!"
End If
End Sub

Gruß
Sigi
Anzeige
AW: Teilstring suchen und Address ausgeben
26.12.2017 21:22:55
Ralf
Hallo Sigi,
danke für die rasche Antwort.
Habe deine Nachricht noch nicht ausprobiert, scheinbar zielt deine Lösung aber darauf hinaus, dass als Such-String der komplette String gewählt wird:"RL v. 14.09.2017, RL-Nr. 19265 RL-Schein R/17381".
Ich möchte aber nur einen Teil des Strings, nämlich "RL v." als Suche einsetzen.
Oder habe ich da bei deiner Antwort was übersehen? Kann bei mir als VBA-Frischling schon sein.
Ralf
Anzeige
per Formel ginge das so
26.12.2017 20:36:50
WF
Hi,
Formel steht in Zeile 1.
=ADRESSE(SUMMENPRODUKT((LINKS(A2:R99;5)="RL v.")*ZEILE(X2:X99));SUMMENPRODUKT((LINKS(A2:R99;5) ="RL v.")*SPALTE(A:R)))
Musst Du Dir dann auf VBA umfummeln (lassen).
WF
AW: per Formel ginge das so
26.12.2017 21:07:09
Ralf
Mensch Leute, ihr macht mich ganz verlegen!!!
So schnell hätte ich keine Antwort erwartet.
Ich hoffe, da neu im Forum, dass ich mit diesem Text alle erreiche, die mir geantwortet haben: Sepp, Siggi, WF.
Komme heute nicht mehr zum Testen, muß noch die Weihnachtsbaumkerzen ausblasen. Melde mich aber wieder - versprochen!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Teilstring suchen und Adresse ausgeben in Excel


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen Teilstring zu suchen und die Adresse der Zelle auszugeben, kannst du folgenden Code verwenden. Dieser Code sucht nach dem Teilstring "RL v." in einer bestimmten Tabelle und gibt die Adresse der gefundenen Zelle aus:

Sub suchen()
    Dim objRange As Range
    With Sheets("Tabelle1") ' Tabellenname anpassen
        Set objRange = .UsedRange.Find(What:="RL v.", LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False, SearchFormat:=False)
        If Not objRange Is Nothing Then
            MsgBox "Die Adresse der Zelle ist: " & objRange.Address
        Else
            MsgBox "Teilstring nicht gefunden!"
        End If
    End With
End Sub

Dieser Code kann in Excel VBA eingefügt werden und funktioniert in Excel 2016. Du kannst die Tabelle und den gesuchten Teilstring entsprechend anpassen.


Häufige Fehler und Lösungen

  • Problem: Der Teilstring wird nicht gefunden.

    • Lösung: Stelle sicher, dass du den richtigen Suchbegriff und die richtige Tabelle angegeben hast. Überprüfe auch, ob der Teilstring korrekt geschrieben ist.
  • Problem: Die Ausgabe der Adresse ist nicht das gewünschte Format.

    • Lösung: Verwende objRange.Address, um die Adresse im gewünschten Format (z.B. $D$8) zu erhalten.

Alternative Methoden

Wenn du den Teilstring in mehreren Zellen oder in einer anderen Tabelle suchen möchtest, kannst du die Find-Methode in einer Schleife verwenden. Hier ist ein Beispiel:

Sub suchenMehrere()
    Dim rngFind As Range
    Dim rngRows As Range
    Dim sFind As String
    Dim sSearch As String
    sSearch = "RL v."

    Set rngFind = Cells.Find(sSearch)
    If Not rngFind Is Nothing Then
        sFind = rngFind.Address
        Do
            Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
            Set rngFind = Cells.FindNext(After:=rngFind)
            If rngFind.Address = sFind Then Exit Do
        Loop
    Else
        MsgBox "Teilstring nicht gefunden!"
    End If
End Sub

Diese Methode sucht nach dem Teilstring "RL v." in der gesamten Arbeitsmappe und gibt alle gefundenen Zeilen zurück.


Praktische Beispiele

  1. Suchstring anpassen: Wenn du nach einem anderen Teilstring suchen möchtest, wie z.B. "RL-Nr.", ändere einfach die Variable sSearch:

    sSearch = "RL-Nr."
  2. Benutzerdefinierte Ausgabe: Du kannst die Ausgabe auch anpassen, um mehr Informationen bereitzustellen:

    MsgBox "Der Teilstring wurde in der Zelle " & objRange.Address & " gefunden."

Tipps für Profis

  • Nutze die Option Explicit-Anweisung, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Dokumentiere deinen Code mit Kommentaren, um die Lesbarkeit zu erhöhen und anderen (oder dir selbst in der Zukunft) das Verständnis zu erleichtern.
  • Wenn du häufig nach Teilstrings suchst, erstelle eine benutzerdefinierte Funktion, die du in Excel wie eine normale Formel verwenden kannst.

FAQ: Häufige Fragen

1. Wie kann ich einen Teilstring in einer bestimmten Spalte suchen?
Du kannst den Find-Befehl auf den spezifischen Bereich der Spalte anwenden, z.B. Set objRange = .Columns("A").Find(...).

2. Funktioniert dieser Code in älteren Excel-Versionen?
Ja, die meisten VBA-Funktionen sind auch in älteren Versionen verfügbar, allerdings können einige spezifische Eigenschaften variieren. Es empfiehlt sich, den Code in deiner Version zu testen.

3. Kann ich den Teilstring auch mit einer Formel suchen?
Ja, du kannst die Excel-Funktion ADRESSE mit einer Kombination von SUMMENPRODUKT verwenden, um den Teilstring zu suchen und die Adresse zu erhalten.

=ADRESSE(SUMMENPRODUKT((LINKS(A2:R99;5)="RL v.")*ZEILE(A2:A99));SUMMENPRODUKT((LINKS(A2:R99;5)="RL v.")*SPALTE(A:R)))

Mit diesen Anleitungen und Beispielen solltest du in der Lage sein, einen Teilstring in Excel zu suchen und die Adresse der Zelle auszugeben.

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