Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Überschriften einer Tabelle übernehmen

Forumthread: Überschriften einer Tabelle übernehmen

Überschriften einer Tabelle übernehmen
24.10.2017 14:40:27
Andy
Hallo alle zusammen, ich wende mich mal wieder mit einem kleinen Problem an euch, in der Hoffnung tatkräftig Unterstützung zu bekommen.
Folgende Ausgangssituation: in der Zeile eins stehen verschiedene Überschriften. In der Zeile zwei und fortfolgende werden durch eine Userform Abfrage mit checkboxen unter den jeweiligen Überschriften als wert true ein X eingetragen. Es sind circa 100 Datensätze (Zeilen) in denen circa 40 Spalten mit dem Ex jeweils belegt werden. Ich hätte jetzt gerne, dass mir alle Spaltenüberschriften, die mit X angeklickt worden, am Ende der Zeile in eine einzige Zeile zusammen gefasst werden.
A. B. C. D. X
1: Maier Müller. Fritz Hannes ....... Ergebnis
2.: X. X. X. Maier, Müller , Hannes. (Alles in einer Zelle)
3.: X. X. Müller, Fritz (alles in einer Zelle )
Gibt es dafür eine Lösung ? Bzw eine Formel , die aus den verschiedenen X ein Ergebnis aus den Überschriften zusammenfasst ? Ihr würdet mir echt helfen...
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Zeig was Du willst in einer Bsp-Mappe, owT
24.10.2017 18:12:46
Michael
Mit VBA...
25.10.2017 17:10:21
Michael
Hallo Larson/Andy (spontane Namensänderung?)
...ist das mit einer kleinen UDF (benutzerdefinierte Funktion) möglich, siehe: https://www.herber.de/bbs/user/117224.xlsm
Code dazu
Function CollectNames(GesamteListe As Range, Optional Trenner$)
Dim n, h, Ac As Range, i&, fR&, cR&, s$, sep$
sep = IIf(Trenner = vbNullString, ",", Trenner)
Set Ac = Application.Caller
fR = GesamteListe.Resize(1, GesamteListe.Columns.Count).Row
cR = Ac.Row
n = GesamteListe.Resize(1, GesamteListe.Columns.Count)
h = GesamteListe.Offset(cR - fR, 0).Resize(1, GesamteListe.Columns.Count)
For i = LBound(h, 2) To UBound(h, 2)
If h(1, i)  "" Then s = s & Trim(n(1, i)) & sep
Next i
CollectNames = Left(s, Len(s) - 1)
Erase n: Erase h: Set Ac = Nothing
End Function
Erfordert natürlich ein Speichern der Mappe als .xlsm. Mit Excel-Bordmitteln, also integrierten Funktionen, finde ICH auf die Schnelle keine Lösung (aber dafür gibt's ggf. weit bessere Formel-Cracks hier im Forum).
LG
Michael
Anzeige
AW: Mit VBA...
27.10.2017 00:23:30
Andy
Super... genau das, was ich wollte. Vielen vielen Dank.
Freut mich, Danke für die Rückmeldung, owT
27.10.2017 11:19:27
Michael
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige