VBA: Schleife

Bild

Betrifft: VBA: Schleife
von: Alex
Geschrieben am: 13.10.2015 12:58:48

Hallo zusammen.
ich habe folgendes Problem und hoffe dass ihr mir helfen könnt.
Am besten per Formel, sollte es aber eine leichter Lösung per VBA geben ist diese auch erwünscht.
Beispieldatei:
https://www.herber.de/bbs/user/100740.xlsx
Nun das Problem.
ich habe 2 Listen.
In der eine Liste(hier: „Ziel")befinden sich IDs, welche nur einmal vorkommen.
In der anderen Liste(hier: „Daten") befinden sich dieselben IDs nur das diese hier öfter vorkommen, jede ID hat einen Wert("Name").
Ich möchte gerne dass die Werte in der Tabelle Ziele mit einander verkettet werden wenn in der Tabelle Daten dieselbe ID vorkommt wie in der Tabelle Ziel.
Also eig. ein Sverweis. Nur leider nimmt der Sverweis ja immer nur den ersten Wert der er findet. Und mit Verketten bekomm ich das nicht hin.
Z.b.=SVERWEIS(A2;Daten!$A$2:$B$19;2;FALSCH)
Kann mit jemand dabei helfen?
VG Alex

Bild

Betrifft: AW: VBA: Schleife
von: UweD
Geschrieben am: 13.10.2015 13:50:56
Hallo
mit Hilfsspalte und vorheriger Sortierung...

Daten

 ABC
1IDNameHilfsspalte
2111aa
3111bab
4111cabc
5112dd
6112rdr
7113rr
8113ere
9113greg
10114dd
11114ede
12115gg
13116ww
14220ww
15330qq
16358ss
17400ee
18400wew
19401qq

verwendete Formeln
Zelle Formel Bereich N/A
C2=WENN(A1=A2;C1&B2;B2)  


Ziel
 AB
1IDName
2111abc
3112dr
4113reg
5114de
6115g
7116w
8220w
9330q
10358s
11400ew
12401q

verwendete Formeln
Zelle Formel Bereich N/A
B2=VERWEIS(2;1/(Daten!A:A=A2);Daten!C:C)  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.03 einschl. 64 Bit


Gruß UweD

Bild

Betrifft: AW: VBA: Schleife
von: Alex
Geschrieben am: 13.10.2015 14:06:30
Hallo UweD,
vielen dank hat super geklappt:D
VG Alex

Bild

Betrifft: AW: VBA: Schleife
von: selli
Geschrieben am: 13.10.2015 14:43:55
hallo alex,

Function BERVERK3(bedrng As Range, ausrng As Range, zi As Range, Optional strZwi As String)
 
         Dim wksa As String
         Dim c As Range
         
         wksa = ausrng.Parent.Name
         BERVERK3 = ""
                
         For Each c In bedrng
            If c.Value = zi.Value Then BERVERK3 = BERVERK3 & Sheets(wksa).Cells(c.Row, ausrng. _
Column) & strZwi
         Next
                  
         If Len(BERVERK3) > 0 Then BERVERK3 = Left(BERVERK3, Len(BERVERK3) - Len(strZwi))
End Function
eine eigene funktion macht es auch möglich. die formel sieht dann so aus:
=BERVERK3(Daten!$A$2:$A$19;Daten!$B$2:$B$19;Ziel!$A2;" - ")
(der bindestrich zur trennung der gefundenen werte ist optional.
gruß
selli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA: Schleife "