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

Suchergebnis zusammengefasst dargestellt

Suchergebnis zusammengefasst dargestellt
28.01.2020 15:28:36
Peter
Hallo zusammen
Ich suche eine VBA-Lösung die mir die Suchergebnisse, entsprechend dem Suchkriterium jeweils in einer Zelle zusammengefasst anzeigt.
In der Tabelle 1, Spalte A2:A stehen Auftragsnummern, die nur 1x oder mehrfach vorkommen können.
In der Spalte B2:B stehen Nummern die jeweils einer oder mehrere Auftragsnummern zugewiesen sind.
Eine Auftragsnummer kann mehrere Nummern zugewiesen haben.
In der Tabelle 2 sollen entsprechend der Auftragsnummer (A2:A) + Index (B2:B) jeweils alle Nummernzuweisungen der Tabelle 1 zusammen gefasst dargestellt werden.
Wenn eine Auftragsnummer der Tabelle 2 in der Tabelle 1 nicht gefunden wird, dann soll anstelle der Nummerzuweisungen "na" stehen.
Könnt Ihr mir damit helfen, hat jemand eine Idee wie man das in VBA umsetzen könnte?
Testdatei: https://www.herber.de/bbs/user/134792.xlsm
Danke für Eure Hilfe.
Viele Grüsse,
Peter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchergebnis zusammengefasst dargestellt
28.01.2020 22:52:46
Christian
Hallo Peter,
so z.B.

Option Explicit
Sub TestIt()
Dim objDic As Object
Dim i As Long, lngNum As Long, lngLR As Long
Set objDic = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Sheets("Tabelle1")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
lngNum = .Cells(i, 1)
If objDic.Exists(lngNum) Then
objDic(lngNum) = objDic(lngNum) & ", " & .Cells(i, 2)
Else
objDic(lngNum) = .Cells(i, 2)
End If
Next
End With
With ThisWorkbook.Sheets("Tabelle2")
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(2, 3).Resize(lngLR - 1).ClearContents
For i = 2 To lngLR
lngNum = .Cells(i, 1)
If objDic.Exists(lngNum) Then
.Cells(i, 3) = objDic(lngNum)
Else
.Cells(i, 3) = "na"
End If
Next
End With
Set objDic = Nothing
End Sub
Grüße
Christian
Anzeige
AW: Suchergebnis konsolidiert dargestellt möglich?
29.01.2020 15:59:00
Peter
Hallo Chrstian
Danke für Deine Anwort und Script, funktioniert sehr gut.
Wäre es jedoch noch möglich das Ergebnis konsolidiert darzustellen, so dass die Nummern in den Zellen jeweils nur 1x dargestellt werden, wie müsste ich dafür das Script anpassen?
Nr---------------- Index---Ergebnis
10167627-------DE------62, 65, 62, 65, 96, 96, 65, 65
10167627-------ES------62, 65, 62, 65, 96, 96, 65, 65
10167629-------IE-------na
10167629-------SK------na
10167629-------UK------na
10167632-------ES------62, 65, 62, 65, 65, 65
Danke Dir.
Viele Grüsse,
Peter
Anzeige
AW: Suchergebnis konsolidiert dargestellt möglich?
29.01.2020 18:10:27
Christian
Hallo,
dann z.B. so:
Option Explicit
Sub TestIt2()
Dim objDic As Object
Dim i As Long, j As Long, lngLR As Long
Dim lngNum As Long, lngType As Long
Dim vntNum, blnFnd As Boolean
Set objDic = CreateObject("Scripting.Dictionary")
With ThisWorkbook.Sheets("Tabelle1")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
blnFnd = False
lngNum = .Cells(i, 1)
lngType = .Cells(i, 2)
If objDic.Exists(lngNum) Then
vntNum = Split(objDic(lngNum), ", ")
For j = 0 To UBound(vntNum)
If vntNum(j) = lngType Then
blnFnd = True
Exit For
End If
Next
If Not blnFnd Then
objDic(lngNum) = objDic(lngNum) & ", " & lngType
End If
Else
objDic(lngNum) = lngType
End If
Next
End With
With ThisWorkbook.Sheets("Tabelle2")
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
.Cells(2, 3).Resize(lngLR - 1).ClearContents
For i = 2 To lngLR
lngNum = .Cells(i, 1)
If objDic.Exists(lngNum) Then
.Cells(i, 3) = objDic(lngNum)
Else
.Cells(i, 3) = "na"
End If
Next
End With
Set objDic = Nothing
End Sub
Grüße
Christian
Anzeige
AW: Suchergebnis konsolidiert dargestellt möglich?
30.01.2020 07:39:47
Peter
Hallo Christian
Super, funktioniert sehr gut, vielen Dank.
Viele Grüsse,
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige