Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dynamisches Kommentarfeld

Dynamisches Kommentarfeld
30.06.2016 10:23:32
Herr
Hallo Zusammen,
ich möchte in ein Tabelle eine Art dynamisches Kommentarfeld haben. Ausgangspunkt sind Zwei Dropdown-Felder. Je nach Kombination der Dropdownfelder wird in einer separaten Spalte ein Kommentar geschrieben. Ändert man die Kombination der Dropdownfelder sollte die Kommentarspalte leer und "befüllbar" sein.
Wechselt man dann wieder zu einer Kombination in der bereits ein Kommentar eingefügt wurde zurück, so sollte dieser Kommentar wieder erscheinen.
Besser verständlich wird es glaube ich in der Beispieldatei.

Die Datei https://www.herber.de/bbs/user/106638.xls wurde aus Datenschutzgründen gelöscht


Vielleicht hat jemand eine Lösung. Das wäre super.
Vielen Dank vorab.
Viele Grüße
Herr Koch

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisches Kommentarfeld
30.06.2016 11:18:31
ChrisL
Hi
Datei:
https://www.herber.de/bbs/user/106641.xlsm
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS1 As Worksheet, WS2 As Worksheet
Dim Zeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Hilfstabelle")
Select Case Target.Address(0, 0)
Case "D6", "D7"
Zeile = CheckEintrag(WS1, WS2)
If Zeile = 0 Then Zeile = WS2.Cells(Rows.Count, 1).End(xlUp).Row + 1
WS2.Cells(Zeile, 1) = WS1.Range("B5")
WS2.Cells(Zeile, 2) = WS1.Range("C5")
WS2.Cells(Zeile, 3) = WS1.Range("D6")
WS2.Cells(Zeile, 4) = WS1.Range("D7")
Case "B5", "C5"
On Error Resume Next
Application.EnableEvents = False
Zeile = CheckEintrag(WS1, WS2)
If Zeile = 0 Then
WS1.Range("D6:D7").ClearContents
Else
WS1.Range("D6") = WS2.Cells(Zeile, 3)
WS1.Range("D7") = WS2.Cells(Zeile, 4)
End If
Application.EnableEvents = True
End Select
End Sub

Private Function CheckEintrag(WS1 As Worksheet, WS2 As Worksheet) As Long
Dim i As Long
For i = 2 To WS2.Cells(Rows.Count, 1).End(xlUp).Row
If WS1.Range("B5") = WS2.Cells(i, 1) And WS1.Range("C5") = WS2.Cells(i, 2) Then
CheckEintrag = i
Exit Function
End If
Next i
End Function

Formeln habe ich dir optimiert und die Dropdown Auswahl erstellt (Namen definiert)
=INDEX(Tabelle2!$B$2:$H$3;1;VERGLEICH(B$5;Tabelle2!$B$1:$H$1;0))
Achtung: Bei 7 Kriterien entstehen bereits 128 Kombinationsmöglichkeiten
=2^7
Bei 10 wären es dann schon über 1000, was sich irgendwann in der Performance niederschlägt.
Hilfstabelle kannst du ausblenden.
cu
Chris

Anzeige
AW: Dynamisches Kommentarfeld
30.06.2016 12:27:56
Herr
Super, Vielen vielen Dank für deine Mühen!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige