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

Text zusammenführen

Text zusammenführen
Michael
Hallo zusammen,
zur Zeit verzweifle ich an folgendem Problem:
Ich habe in Spalte "B" eine Liste von Ausstattungsdetails, in der Entsprechenden Zeile möchte ich vor den Ausstattungsdetails die ein Fahrzeug hat (Also Spalte "A") ein "x" setzen.
https://www.herber.de/bbs/user/79155.xls
Nun sollen über VBA alle Ausstattungsdetail in einer Zelle zusammenkopiert und jeweils mit einem ", " getrennt werden. Verketten kann ich leider nicht nehmen, da ich das "Textergebnis" kopieren möchte um es in einem anderen Programm zu nutzen!
Hat jemand eine Idee?
Viele Grüße aus Viersen
Michael

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

Betreff
Benutzer
Anzeige
VBA: Function VERKETTENWENN()
01.03.2012 15:18:29
NoNet
Hallo Michael,
schau dir mal diesen Thread an :
http://www.ms-office-forum.net/forum/showthread.php?p=1172260#poststop
Den gesamten VBA-Code (PUBLIC FUNCTION bis END FUNCTION) musst Du in ein allgemeines Modul (z.B. Modul1) im VBA-Editor (Alt+F11) kopieren, dann kannst Du in einer Zelle folgende Funktion verwenden :
=VERKETTENWENN(A2:A12;"x";B2:B12;", ")
Das Ergebnis dieser Zelle kannst Du dann kopieren (Strg+C) und per "Inhalte einfügen - Werte" als fixen Wert in die Zelle einfügen.
Ergebnis :
Radio mit CD - Spieler, AUX - Anschluß, Navigationssystem mit Rückfahrkamera, Bluetooth Freisprecheinrichtung, Klimaautomatik (getrennt regelbar), Multifunktionslenkrad, Lederlenkrad & Lederschaltknauf

Gruß, NoNet
Anzeige
AW: VBA: Function VERKETTENWENN()
01.03.2012 15:28:51
Michael
Hey NoNet,
funktioniert einwandfrei! Vielen Dank!!
Viele Grüße
Michael
AW: VBA: Function VERKETTENWENN()
02.03.2012 08:20:04
Franz
Guten Morgen,
sehr interessante Geschichte.
Gibt es auch noch die Möglichkeit über eine zusätzlichen Spalte
die Reihenfolge der Begriffe in Spalte B festzulegen?
Muss wahrscheinlich über die Funktion gesteuert werden.
Gruß
Franz
VBA: Function VERKETTENWENN() mit Sortierung
03.03.2012 01:12:36
NoNet
Hallo Franz,
die Sortierung inder UDF ist eine gute Idee !
Hier die angepasste Variante .
Public Function VerkettenWenn(rngVergleichsmatrix, strVergleichswert, _
rngWerte, lngSort, Optional strTrenner)
'Verkettet Werte aus dem Bereich "rngWerte", wenn Wert aus
'Bereich "rngVergleichsmatrix" dem Inhalt von "strVergleichswert" entspricht
'lngSort : 0=Ohne Sortierung, 1=Aufsteigend sortiert, 2=Absteigend sortiert
'Beispiel-Aufruf im Tabellenblatt : =VERKETTENWENN(A2:A20;"xy";B2:B20;0;" - ")
'29.11.2008, NoNet
'Erweitert (Sortierung) : 03.03.2012, NoNet - www.excelei.de
'Beispiel-Aufruf im Tabellenblatt : =VERKETTENWENN(A2:A20;"x";B2:B20;1;" - ")
Dim rngZelle As Range, strTemp As String, lngI As Long
Dim lngA As Long, varA As Variant
Dim arrW()
ReDim Preserve arrW(0)
If IsMissing(strTrenner) Then strTrenner = ","
strTemp = ""
lngI = 0
For Each rngZelle In rngVergleichsmatrix
lngI = lngI + 1
If rngZelle.Value = strVergleichswert Then
If lngSort = 0 Then
strTemp = strTemp & _
Application.Index(rngWerte, lngI) & strTrenner
Else
arrW(UBound(arrW)) = Application.Index(rngWerte, lngI)
ReDim Preserve arrW(UBound(arrW) + 1)
End If
End If
Next
If UBound(arrW) > LBound(arrW) Then ReDim Preserve arrW(UBound(arrW) - 1)
If lngSort Then
For lngI = LBound(arrW) To UBound(arrW)
For lngA = LBound(arrW) To lngI - 1
If (lngSort = 1 And arrW(lngI) > arrW(lngA)) Or _
(lngSort = 2 And arrW(lngI)  "" And lngSort = 0 Then strTemp = Left(strTemp, Len(strTemp) - Len(strTrenner) _
)
VerkettenWenn = strTemp
End Function

Die Sortierung wird über den 4. Parameter der Funktion im Aufruf gesteuert :
=VERKETTENWENN(A2:A20;"x";B2:B20;0;" - ") : KEINE Sortierung, Reihenfolge wie in B2:B20
=VERKETTENWENN(A2:A20;"x";B2:B20;1;" - ") : AUFSTEIGENDE Sortierung, nach Wert in B2:B20
=VERKETTENWENN(A2:A20;"x";B2:B20;2;" - ") : ABSTEIGENDE Sortierung, nach Wert in B2:B20
Gruß, NoNet
Anzeige
Sehr schön, aber warum nicht gleich beliebige...
03.03.2012 04:08:32
Luc:-?
…Reihenfolge, NoNet,
so wie ich das mitunter mache, bspw mit Positionenmatrix {3.1.4.2} … ;-)
Gruß+schöWE, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige