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

Forumthread: find mit mehreren Zellen

find mit mehreren Zellen
Jonathan
Hey,
es liegt in VBA ein String mit x Zeichen Länge vor (z.B. AutoAudirot), welcher immer aus drei Werten zusammengesetzt ist. Diese drei Werte können in einem Tabellenblatt in einer Zeile in drei nebeneinander liegenden Spalten vorkommen. Genau dieses Vorkommen möchte ich überprüfen.
(Es liegen auch Einzelwerte des zusammengesetzten Strings vor str1, str2, str3.)
Bisher habe ich es über eine Schleife gelöst:
Alle Zeilen in dem betreffenden Tabellenblatt abgearbeitet, die jeweiligen Spalten innerhalb der Schleife zu einem String zusammengesetzt und mit dem Vorhandenen verglichen. Klappt auch wunderbar, ist aber bei vielen Daten sehr zeitaufwendig. Find ist dagegen ja sehr schnell.
Gibt es dafür eine Lösung, die Ihr mir näher bringen könnt? ;-)
VG
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: find mit mehreren Zellen
14.09.2011 21:34:01
Gerd
Hallo Jonathan,
zeige bitte deinen "wunderbar klappenden" Schleifencode. Dann wird es höchstwahrscheinlich klarer, welche Treffer wo ... etc.
Gruß Gerd
AW: find mit mehreren Zellen
14.09.2011 21:59:33
Jonathan
Hey,
hier der Codeausschnitt (in ersZeioDatSW ist die letzte Zeile enthalten):

SuchWneu = Me("com_buchungsart" & i).Value & Me("com_ok" & i).Value & Me("com_uk" & i). _
Value & Me("com_uk2" & i).Value & Me("txt_kommentar" & i).Value
'MsgBox SuchWneu
For j = 1 To ersZeioDatSW - 1
With ThisWorkbook.Sheets("Suchwerte")
SuchW = .Cells(j, 1).Value & .Cells(j, 2).Value & .Cells(j, 3).Value & .Cells(j, 4). _
Value & .Cells(j, 5).Value
'MsgBox SuchW
If SuchWneu = SuchW Then
MsgBox "gefunden"
End If
End With
Next

Anzeige
AW: find mit mehreren Zellen
14.09.2011 22:41:15
D.Saster
Hallo,
na da könnt ich ja genauso gut aus deiner Schuhgröße deine Haarfarbe ermitteln.
Gruß
Dierk
AW: find mit mehreren Zellen
14.09.2011 21:36:59
Uduuh
Hallo,
wahrscheinlich ist es besser das alles in Arrays zu packen und diese zu durchsuchen.
Mehr Info nur mit Beispielmappe möglich.
Gruß aus’m Pott
Udo

Anzeige
AW: find mit mehreren Zellen
15.09.2011 06:29:17
Gerd
Hallo Jonathan,
Ersatzfragment:
Dim SuchWneu As String
Dim Bereich As Range
Dim Treffer As Range
Dim Erster As String
Dim bln As Boolean
SuchWneu = Me("com_buchungsart" & i).Value
With ThisWorkbook.Sheets("Suchwerte")
Set Bereich = .Range(.Cells(1, 1), .Cells(ersZeioDatSW - 1, 1))
Set Treffer = Bereich.Find(SuchWneu, LookIn:=xlValues, lookat:=xlWhole)
If Not Treffer Is Nothing Then
Erster = Treffer.Address
Do
j= Treffer.Row
If Me("com_ok" & i).Value & Me("com_uk" & i). _
Value & Me("com_uk2" & i).Value & Me("txt_kommentar" & i).Value = _
.Cells(j, 2).Value & .Cells(j, 3).Value & .Cells(j, 4). _
Value & .Cells(j, 5).Value Then MsgBox "gefunden!": bln = True: Exit Do
Set Treffer = Bereich.FindNext(Treffer)
Loop Until Treffer.Address = Erster
End If
End With
If Not bln Then MsgBox "nicht gefunden!"
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

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

Strings in mehreren Zellen mit Excel VBA finden


Schritt-für-Schritt-Anleitung

Um einen zusammengesetzten String in mehreren Zellen mit Excel VBA zu finden, kannst Du die Find-Methode verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Definiere die Variablen: Setze die Variablen für den suchenden String und den Bereich, in dem gesucht werden soll.

    Dim SuchWneu As String
    Dim Bereich As Range
    Dim Treffer As Range
    Dim Erster As String
    Dim bln As Boolean
  2. Setze den Suchstring: Kombiniere die Werte aus den gewünschten Zellen, um den vollständigen Suchstring zu erstellen.

    SuchWneu = Me("com_buchungsart" & i).Value & Me("com_ok" & i).Value & _
    Me("com_uk" & i).Value & Me("com_uk2" & i).Value & _
    Me("txt_kommentar" & i).Value
  3. Definiere den Suchbereich: Wähle den Bereich in Deinem Blatt aus, in dem Du suchen möchtest.

    Set Bereich = ThisWorkbook.Sheets("Suchwerte").Range("A1:E" & ersZeioDatSW)
  4. Führe die Suche durch: Verwende die Find-Methode, um nach dem zusammengesetzten String zu suchen.

    Set Treffer = Bereich.Find(SuchWneu, LookIn:=xlValues, lookat:=xlWhole)
  5. Überprüfe die Ergebnisse: Wenn ein Treffer gefunden wird, vergleiche die relevanten Zellen.

    If Not Treffer Is Nothing Then
       Erster = Treffer.Address
       Do
           ' Vergleiche hier die Werte
           ' ...
           Set Treffer = Bereich.FindNext(Treffer)
       Loop Until Treffer.Address = Erster
    Else
       MsgBox "nicht gefunden!"
    End If

Häufige Fehler und Lösungen

  • Fehler: Nichts wird gefunden:

    • Überprüfe, ob die Werte korrekt kombinierten wurden. Ein Tipp ist, die Werte in einer MsgBox anzuzeigen, um sicherzustellen, dass sie so aussehen, wie Du es erwartest.
  • Fehler: Schleife läuft endlos:

    • Stelle sicher, dass Du die Bedingung zum Beenden der Schleife korrekt implementiert hast, um eine Endlosschleife zu vermeiden.

Alternative Methoden

Wenn Du nicht VBA verwenden möchtest, kannst Du auch die SVERWEIS- oder WVERWEIS-Funktionen in Excel verwenden. Diese Funktionen sind jedoch möglicherweise nicht so schnell wie die Find-Methode in VBA, insbesondere bei großen Datenmengen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, um die Verwendung der Find-Methode zu demonstrieren:

Sub SucheBeispiel()
    Dim SuchWneu As String
    Dim Bereich As Range
    Dim Treffer As Range

    SuchWneu = "AutoAudirot" ' Beispielwert
    Set Bereich = ThisWorkbook.Sheets("Suchwerte").Range("A1:E100")

    Set Treffer = Bereich.Find(SuchWneu, LookIn:=xlValues, lookat:=xlWhole)

    If Not Treffer Is Nothing Then
        MsgBox "Gefunden in " & Treffer.Address
    Else
        MsgBox "Nicht gefunden!"
    End If
End Sub

Tipps für Profis

  • Nutze die Find-Methode, um die Effizienz Deines Codes zu maximieren, insbesondere bei großen Datenmengen.
  • Verwende Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind – das hilft, Fehler zu vermeiden.
  • Experimentiere mit verschiedenen LookIn- und lookat-Einstellungen, um die Suchergebnisse zu verfeinern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Suchkriterien verwenden?
Du kannst mehrere Find-Aufrufe innerhalb einer Schleife verwenden, um verschiedene Suchkriterien zu testen.

2. Was mache ich, wenn die Daten in einer anderen Excel-Version sind?
Die Find-Methode ist in den meisten Excel-Versionen verfügbar, jedoch kann es Unterschiede in der Performance geben. Stelle sicher, dass Du immer die aktuellste Version verwendest, um die besten Ergebnisse zu erzielen.

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