09.09.2016, 10:24 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2016, 10: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