Hallo Zusammen,
Ich habe folgendes Problem:
in Zelle A1 ist z.b "P1B1V1" in einen Wert vorhanden, auch in Zelle B1 ist der selbe wert "P1B1V1" vorhanden aber in einen anderen zusammen hang.
Wenn ich jetzt über Markro z.B. nach P1B1V1 suche bekomme ich als Ergebnis zwei Ergebnisse angezeigt, weil er diesen Begriff in zwei Zellen findet, in Wirklichkeit müsste nur ein Ergebnis kommen.
Ich möchte es so machen, daß wenn in eine Zelle die Zeichenreinfolge gefunden wurde, das es in der anderen Zellen nicht mehr berücksichtigt wird.
Er soll aber quer suchen, d.h. es müsste A1 bis AW1 durgesucht werden
in einer der Zelle wurde gesuchte begriff gefunden dann geht's weiter mit durchsuchen der B1 bis BW1 und so weiter, wie viele Zeilen er durchsuchen muss ist nicht definiert weil die Tabelle ständig min neuen Daten gefüllt wird
Gesucht wird von A1 bis AY1 --> wie gesagt wie lange es nach unten gehen soll ist nicht definierbar
Anbei noch der Code für die Suche:
Private Sub CommandButton1_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer
ListBox1.Clear
xSuche = TextBox1.Value
If xSuche = "" Then
MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
Exit Sub
End If
If ComboBox1.Value = "" And CheckBox2.Value = False Then
MsgBox "Bitte geben Sie ein, wo der Begriff gesucht werden soll!", vbExclamation, "Achtung!"
Exit Sub
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
If CheckBox2.Value = True Or Worksheets(iCounter).Name = ComboBox1.Value Then
Set rng = Worksheets(iCounter).Cells.Find _
(xSuche, lookat:=Suchart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets(iCounter)
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 52, 0 To iRowU)
arr(0, iRowU) = .Name
arr(1, iRowU) = rng.Address(False, False)
arr(2, iRowU) = .Cells(rng.Row, 4)
arr(3, iRowU) = .Cells(rng.Row, 8)
arr(4, iRowU) = .Cells(rng.Row, 11)
arr(5, iRowU) = .Cells(rng.Row, 18)
arr(6, iRowU) = .Cells(rng.Row, 19)
arr(7, iRowU) = .Cells(rng.Row, 20)
arr(8, iRowU) = .Cells(rng.Row, 44)
arr(9, iRowU) = .Cells(rng.Row, 45)
arr(10, iRowU) = .Cells(rng.Row, 46)
arr(11, iRowU) = .Cells(rng.Row, 47)
arr(12, iRowU) = .Cells(rng.Row, 48)
arr(13, iRowU) = .Cells(rng.Row, 49)
arr(14, iRowU) = .Cells(rng.Row, 50)
arr(15, iRowU) = .Cells(rng.Row, 51)
iRowU = iRowU + 1
Set rng = .Cells.FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
End If
Next iCounter
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
ListBox1.Column = arr
End If
End Sub
Vielen vielen Dank schon in Vorfeld |