Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Text anzeigen, je nach Zellinhalt
#1
Hi,

ich habe im "Deckblatt" in Spalte A 6 Zellen, die mit Doppelklick-Makro mit einem "X" gefüllt werden können.
Diese 6 Zellen sind unabhängig voneinander, es können also von 0 bis 6 Zellen "angekreuzt" werden.

Nun will ich abhängig von den angekreuzten Zellen im Blatt "Änderung" in der Zelle A9 den jeweiligen Text, der in der Spalte B steht, mit ", " verkettet haben.

Mir fehlt momentan die Idee, wie bekomme ich das hin?

Arbeitsblatt mit dem Namen 'Deckblatt'
AB
10interne Qualifikation
11Kunden-Qualifikation
12EMV
13CE
14UL
15DNV GL
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2013
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Antworten Top
#2
Hallo Rabe,

eine sicher nicht sehr feine, aber funktionierende Lösung:

Code:
=WENN(A10="x";B10;"")&WENN(A11="x";", "&B11;"")&WENN(A12="x";", "&B12;"")...

Und falls du Excel2016 hast, dann über eine Hilfsspalte mit TEXTVERKETTEN, das ist noch schöner.
Schöne Grüße
Berni
Antworten Top
#3
Hallo Rabe,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
Dim rngB As Range
Dim strB As String
Dim varB As Variant

Set rngB = Me.Range("A10:A15")
If Not Application.Intersect(rngB, Target) Is Nothing Then
If Target.Value = "" Then
Target.Value = "X"
Else
Target.Value = ""
End If
varB = rngB.Resize(, 2).Value
For i = 1 To UBound(varB)
strB = strB & Replace(varB(i, 1), "X", ", " & varB(i, 2))
Next i
Worksheets("Änderung").Range("A9").Value = Mid(strB, 3)
End If
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rabe
Antworten Top
#4
Jetzt hab ich noch eine etwas schönere Lösung gefunden, die kein VBA benötigt und sogar die Beistriche richtig anzeigt.

In einer Hilfszelle (zB B9), unsichtbar:
Code:
=WENN(A10="x";B10&", ";"")&WENN(A11="x";B11&", ";"")&WENN(A12="x";B12&", ";"")&WENN(A13="x";B13&", ";"")&WENN(A14="x";B14&", ";"")&WENN(A15="x";B15&", ";"")

In A9
Code:
=LINKS(B9;LÄNGE(B9)-2)
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Rabe
Antworten Top
#5
(28.06.2018, 12:21)MisterBurns schrieb: Jetzt hab ich noch eine etwas schönere Lösung gefunden, die kein VBA benötigt und sogar die Beistriche richtig anzeigt.

Hallo Berni,

VBA ist doch ohnehin bereits im Einsatz. Wink

Gruß Uwe
Antworten Top
#6
Hallo Ralf, von mir käme eine Hilfsspaltenlösung, bei Interesse poste ich sie...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • Rabe
Antworten Top
#7
@Uwe: auch wieder wahr, da hab ich nicht mitgedacht.
Schöne Grüße
Berni
Antworten Top
#8
Hallo ihr drei,

danke, sowohl die Formel-, als auch die VBA-Lösung funktionieren einwandfrei.

Ich habe mich für die VBA-Lösung entschieden, da ja, wie Uwe schrieb, sowieso VBA in Benutzung ist. Falls sich rausstellt, daß die Benutzer die X doch per Hand eingeben wollen, muß ich dann halt auf die Formellösung zurückgreifen oder das Worksheet_Change-Event zusätzlich verwenden.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste