Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Lsite durchsuchen und Werte sortiert ausgeben

Lsite durchsuchen und Werte sortiert ausgeben
13.04.2018 11:34:35
Jan
Hallo werte Lesenden
ich habe ein spezielles Problem mit Excel bzw. VBA.
Für eine Auswertung ist es notwendig, dass ich eine Spalte nach einem bestimmten Wert durchsuche um dann anschließend den Wert aus der benachbarten Zelle in eine Liste eintragen zu lassen. Klar könnte ich das per Filter und Hand anstellen, soll aber nicht der Anspruch sein. Es sollte möglichst für den Anwender komfortabel gelöst werden.
In der Spalte A (A2 bis A3000) stehen ganz viele Zahlen.
In der Zelle D1 steht der Suchwert, der in Spalte A gesucht werden soll.
Wird der Wert in Spalte A gefunden, soll der entsprechend benachbarte Wert aus Spalte B ausgegeben werden.
Die Ausgabe soll untereinander in Spalte D (ab Zelle D3) erfolgen.
Ich suche schon eine ganze Weile nach der Lösung. Es wäre schön, wenn ihr einen Lösungsansatz für mich hättet, da meine VBA Kenntnisse beschränkt sind.
Danke

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lsite durchsuchen und Werte sortiert ausgeben
13.04.2018 11:35:52
SF
Hola,
warum VBA? Nimm den Sverweis().
Gruß,
steve1da
AW: Lsite durchsuchen und Werte sortiert ausgeben
13.04.2018 11:51:31
Jan
Hallo SF
Vielen Dank für die Antwort.
Diese Lösung hatte ich vorher, ist aber wenig performant.
Was ich noch nicht geschrieben habe ist, dass es in Summe 5 Werte sind, nach denen die Spalte A durchsucht und aus Spalte B die Werte ausgegeben werden sollen.
Im Anschluss wird die Liste sortiert und dann die Nullen und Duplikate entfernt.(Den Teil habe ich schon fertig)
Zusätzlich besteht immer die Möglichkeit, dass Irgendjemand (die lieben Kollegen) in der Liste etwas verändert und schon fängt man an zu suchen.
Grüße,
Jan
Anzeige
Was brauchst du jetzt genau?
13.04.2018 13:19:52
Peter(silie)
Hallo,
brauchst du jetzt einen Suchalgorithmus oder einen Sortieralgorithmus...
Für die Suche verwende einfach Application.Match
Hier ein Quicksort:
Sub a()
Dim tmp
Dim i As Long
tmp = Range("A2:A3000").Value
tmp = Application.Transpose(Application.index(tmp, 0))
Quicksort tmp, LBound(tmp), UBound(tmp)
Debug.Print Join(tmp, "; ")
End Sub
'Quicksort algorithm was moved here due to project wide usage
'I wont explain this code...
Public Sub Quicksort(ByRef Source As Variant, ByVal low As Long, ByVal high As Long)
Dim i   As Long: i = low
Dim j   As Long: j = high
Dim tmp As Variant
Dim ref As Variant: ref = Source((low + high) / 2)
Do
While (Source(i)  ref): j = j - 1: Wend
If (i  j)
If (low 

Anzeige
AW: Was brauchst du jetzt genau?
13.04.2018 13:36:38
Jan
Hallo Peter(silie),
vielen Dank für die schnelle Antwort.
Ich habe den Code noch nicht wirklich verstanden.
Zur Deiner Frage hier etwas ausführlich geantwortet.
Ich such zuerst einen code, der Spalte "A" nach dem Eintrag in Zelle "D1" durchsucht.
Zum Beispiel findet der code den ersten gleichen Wert in "A15".
Dann soll der Nachbarwert von der gefundenen Zelle, also "B15" in das Feld "D3" eingetragen werden.
Der code such nun weiter und findet meinetwegen den nächsten gleichen wert in "A33".
Auch hier soll der Nachbarwert von "A33", also "B33" in die Zelle "D4" eingetragen werden.
Wenn ich am Ende der Spalte "A" bin, also keine weiteren Werten enthalten sind, dann habe ich in der Spalte "D", im Feld "D1" den gesuchten Wert, und in den Feldern "D3" bis "D..." die entsprechenden Were aus der Spalte "B" untereinander aufgelistet.
Im Anschluss werden die Werte aus den Zellen "E1", "F1","G1","H1" jeweils mit der Spalte "A" verglichen und die entsprechenden Wert aus der Spalte "B" unter die jeweiligen Suchwerte gelistet.
Das sortieren und das entfernen der Duplikate (spaltenweise) habe ich schon.
Wenn Du mir dabei helfen könntest wäre ich sehr glücklich.
Vielen Dank schon einmal
Anzeige
AW: Was brauchst du jetzt genau?
15.04.2018 14:34:37
Werner
Hallo Jan,
teste mal. Durchsucht wird Spalte A nach dem Wert aus D1, bei Treffer wird der jeweilige Wert aus Trefferzeile Spalte B in D3 folgende ausgegeben.
Public Sub suchen()
Dim varSuchbegriff As Variant, firstAddress As String
Dim raTreffer As Range, i As Long
i = 3
'Blattname anpassen
With Worksheets("Tabelle1").Columns(1)
varSuchbegriff = .Range("D1").Value
Set raTreffer = .Find(what:=varSuchbegriff, LookIn:=xlValues, LookAt:=xlWhole)
If Not raTreffer Is Nothing Then
firstAddress = raTreffer.Address
Do
.Cells(i, 4) = raTreffer.Offset(, 1)
i = i + 1
Set raTreffer = .FindNext(raTreffer)
Loop While Not raTreffer Is Nothing And raTreffer.Address  firstAddress
End If
End With
End Sub
Gruß Werner
Anzeige
AW: Was brauchst du jetzt genau?
16.04.2018 07:06:44
Jan
Guten Morgen Werner,
funktioniert einwandfrei. Vielen Dank.
Gruß,
Jan
Gerne u. Danke für die Rückmeldung. o.w.T.
16.04.2018 07:18:36
Werner

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige