09.09.2016, 11:24 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2016, 11:41 von windolph.)
Hallo ich habe folgende Schwierigkeit:
Zunächst gibt es eine einfache Matrix in der zu jedem Objekt (Text) aus Spalte 1 in Spalte 2 eine feste Zahl zugeordner wird. Über ein Dropdown werden mit Mehrfachauswahl x-beliebig viele Objekte (Text) aus Spalte 1 ausgewählt und in die Zelle des Dropdown mit Kommatrennung ausgegeben. Soweit so gut....
Meine Frage ist jetzt, wie ich es hinbekomme, dass zu allen ausgewählten Objekten die Summe, der jeweils zugeordneten Zahl aus Spalte 2, gebildet und ausgegeben wird?
Als erste Vermutung für dein Problem denke ich, wirst du deine Zahlen über einen SVERWEIS holen. Dann musst du nur doch die Zahlen summieren. Näheres kann erst bei Kenntnis deiner Daten (und Formeln) ausprobiert werden.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
füge eine Hilfsspalte (z.B. E) ein und hole dir die Werte mit SVERWEIS. Im Summenfeld einfach summieren. Die Hilfsspalte kannst du, falls sie dich stört, ausblenden.
Hallo, ich habe nochmal eine neue Tabelle hochgeladen (mit VBA Code). Ihre Lösung ist klar, aber nicht so wie ich mir das vorstelle. In meinem Fall werden die Objekte in D5 alle in eine Zelle geschrieben (siehe VBA-Code). Daher weiss ich nicht wie ich dann einen SVERWEIS Bezug aufbauen soll.
VBA-Code Private Sub Worksheet_Change(ByVal Target As Range)
'** Dimensionierung der Variablen Dim rngDV As Range Dim wert_old As String Dim wertnew As String
'** Errorhandling On Error GoTo Errorhandling
'** Mehrfachauswahl im definierten Bereich durchführen If Not Application.Intersect(Target, Range("D5")) Is Nothing Then
'**Range definieren Set rngDV = Target.SpecialCells(xlCellTypeAllValidation) If rngDV Is Nothing Then GoTo Errorhandling
'** Prüfen, ob eine gültige Zelle ausgewählt wurde und Werte eintragen If Not Application.Intersect(Target, rngDV) Is Nothing Then Application.EnableEvents = False wertnew = Target.Value Application.Undo wertold = Target.Value Target.Value = wertnew If wertold <> "" Then If wertnew <> "" Then Target.Value = wertold & ", " & wertnew End If End If End If Application.EnableEvents = True End If
Errorhandling: Application.EnableEvents = True End Sub