Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suche nach Wert - die Zweite

Suche nach Wert - die Zweite
22.11.2018 23:57:29
Sandra
Erstmal noch vielen Dank an Werner, der mir zuvor geholfen hat...Ich muss aber noch ein neues Threat für eine neue Suche aufmachen, da diese doch etwas unterschiedlich zu meinem Problem zuvor ist.
Ich habe einen festgelegten Bereich A1: D20 auf dem Tabellenblatt "Fuhrpark" der nach dem Begriff "BMW" durchsucht werden soll. Das Kennzeichen steht immer in der Zelle links davon (-1). Wie schreibe ich alle Kennzeichen in eine Variable, die mit ; voneinander getrennt werden.

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

Betreff
Datum
Anwender
Anzeige
Nachfrage
23.11.2018 00:18:44
Werner
Hallo Sandra,
das kann aber so nicht sein. Bzw. dein Suchbereich kann so nicht stimmen. Denn wenn in Spalte A irgendwo BMW stehen würde, dann kann da links davon aber nichts mehr stehen.
Wenn, dann müsste dein Suchbereich in B1 beginnen.
Mach doch mal eine Beispielmappe.
Gruß Werner
AW: Nachfrage
23.11.2018 00:24:37
Sandra
Ja Werner, das stimmt. In A1 sind die Kz. B1 die Marke, D1 wieder kennzeichen, E1 wieder Marke usw. geht über mehrere Spalten. Hatte damit den gesamten Bereich damit benennen wollen. inkl Kennzeichen.
Bereich kann man dann ja xbeliebig erweitern, wenn man immer nach der linken Zelle schauen muss.
Anzeige
AW: Nachfrage
23.11.2018 00:35:18
Werner
Hallo Sandra,
wenn die Reihenfolge der Treffer keine Rolle spielt
Public Sub Sammeln()
Dim strSuch As String, strAusgabe As String, raZelle As Range
strSuch = "BMW"
With Worksheets("Fuhrpark")
If woksheetfunction.CountIf(.Range("B1:D20"), strSuch) > 0 Then
For Each raZelle In .Range("B1:D20")
If raZelle = strSuch Then
If strAusgabe = "" Then
strAusgabe = raZelle.Offset(, -1)
Else
strAusgabe = strAusgabe & ";" & raZelle.Offset(, -1)
End If
End If
Next raZelle
Else
MsgBox "Suchbegriff " & strSuch & " nicht gefunden."
End If
End With
MsgBox strAusgabe
End Sub
Weil so wird von links oben nach rechts unten gesucht. Also B1, C1, D1, B2, C2, D2.....
Gruß Werner
Anzeige
AW: Nachfrage
23.11.2018 01:06:44
Sandra
Perfekt.. jetzt kann ich ruhig schlafen. Danke Werner, das wars!
Hier noch eine...
23.11.2018 02:45:00
Werner
Hallo Sandra,
...flexieblere Version. Dabei wird der Bereich (letzte belegte Zeile in Spalte B und letzte belegte Spalte in Zeile 1) durch das Makro ermittelt.
Option Explicit
Public Sub Sammeln()
Dim strSuch As String, strAusgabe As String
Dim raZelle As Range, raGesamt As Range
Dim loLetzte As Long, loSpalte As Long, i As Long
strSuch = "BMW"
With Worksheets("Fuhrpark")
loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Row
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = 2 To loSpalte Step 2
If raGesamt Is Nothing Then
Set raGesamt = .Range(.Cells(1, i), .Cells(loLetzte, i))
Else
Set raGesamt = Union(raGesamt, .Range(.Cells(1, i), .Cells(loLetzte, i)))
End If
Next i
If WorksheetFunction.CountIf(.Range(.Cells(1, 2), .Cells(loLetzte, loSpalte)), strSuch) > 0  _
Then
For Each raZelle In raGesamt
If raZelle = strSuch Then
If strAusgabe = "" Then
strAusgabe = raZelle.Offset(, -1)
Else
strAusgabe = strAusgabe & ";" & raZelle.Offset(, -1)
End If
End If
Next raZelle
Else
MsgBox "Suchbegriff " & strSuch & " nicht gefunden."
End If
End With
MsgBox strAusgabe
Set raGesamt = Nothing
End Sub
Gruß Werner
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige