Registriert seit: 10.04.2014
Version(en): 2016 + 365
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' |
| A | B |
10 | | interne Qualifikation |
11 | | Kunden-Qualifikation |
12 | | EMV |
13 | | CE |
14 | | UL |
15 | | DNV GL |
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2013 |
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg |
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
28.06.2018, 13:11
(Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2018, 13:11 von MisterBurns.)
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Rabe
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
28.06.2018, 13:21
(Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2018, 13:21 von MisterBurns.)
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
28.06.2018, 13:23
(Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2018, 13:24 von Kuwer.)
(28.06.2018, 13: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.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): Office 2019
Hallo Ralf, von mir käme eine Hilfsspaltenlösung, bei Interesse poste ich sie...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:1 Nutzer sagt Danke an Jockel für diesen Beitrag 28
• Rabe
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
@Uwe: auch wieder wahr, da hab ich nicht mitgedacht.
Schöne Grüße
Berni
Registriert seit: 10.04.2014
Version(en): 2016 + 365
28.06.2018, 14:37
(Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2018, 14:37 von Rabe.)
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.