Registriert seit: 13.02.2019
Version(en): Office 2016
Hallo zusammen,
ich habe eine Tabelle mit x-Werten. Diese x-Werte sind Materialtexten zugeordnet und stehen im Spaltenkopf.
Beispiel: Die Formel sollte die x (oder auch mehrere) in der Zeile b5:N5 finden und dann den jeweiligen Spaltenname ( Kopf B3:N3 ) in M5 als Wert mit Komma schreiben. Die Texte in in B3:N3 sind als Text formatiert und stehen vertikal.
Freue mich auf einen Vorschlag
Carlo
Registriert seit: 30.09.2018
Version(en): Microsoft 365
Freue mich auf eine Beispieltabelle, kein Bild.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Carlo,
per UDF z.B. so:
der Code kommt in ein allgemeines VBA-Modul (Alt+F11, Einfügen > Modul):
Function UDF_Material(Bereich As Range) As String
Dim rngT As Range
Dim strT As String
For Each rngT In Bereich
If UCase(rngT.Value) = "X" Then
strT = strT & ", " & Cells(3, rngT.Column).Value
End If
Next rngT
UDF_Material = Mid(strT, 3)
End Function
In eine Zelle kommt dann folgende Formel:
=UDF_Material(B5:N5)
Gruß Uwe
Registriert seit: 13.02.2019
Version(en): Office 2016
Wow - vielen herzlichen Dank. Der Code funktioniert wunderbar. Allerdings habe ich noch eine Frage zu dem Code.
Der Spaltentext ist in etwa so aufgebaut:
A5899e3r4, Bosch Akkutschrauber .....
Gibt es die Möglichkeit, die Textausgabe nur bis zum Komma auszugegeben?
DANKE
Carlo
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Carlo,
teste mal damit:
Function UDF_Material(Bereich As Range) As String
Dim lngT As Long
Dim rngT As Range
Dim strG As String
Dim strT As String
For Each rngT In Bereich
If UCase(rngT.Value) = "X" Then
With Cells(3, rngT.Column)
strT = .Value
lngT = InStr(1, strT, ",")
lngT = IIf(lngT, lngT - 1, Len(strT))
strG = strG & ", " & Left(strT, lngT)
End With
End If
Next rngT
UDF_Material = Mid(strG, 3)
End Function
Gruß Uwe