Excel-Dropdown-VBA
06.04.2017 12:53:21
Capone
Bin gerade dabei ein Excel-Tool zu erstellen und komme nach stundenlanger Recherche einfach nicht weiter...
Ich versuche mal mein Problem so gut wie möglich zu erklären:
Es gibt eine Dropdown-Liste mit den 2 Möglichkeiten "Standardwerte" und "eigene Werte". Darunter befinden sich 3 Zellen, in denen die Werte erscheinen.
Wenn "Standardwerte" ausgewählt ist, holt sich Excel die 3 Werte aus einer Tabelle.
Wenn "eigene Werte" ausgewählt ist, sollen diese Werte verschwinden und der Nutzer dann seine eigenen Werte in die 3 Zellen eingeben können.
Das ist die Grundproblematik. Mit Hilfe der WENN-Funktion in jeder dieser 3 Zellen, wird wenn "Standardwerte" ausgewählt ist, der Tabellenwert angezeigt, sonst bleibt sie leer. Dank dieses Codes aus dem Forum habe ich es geschafft, dass die WENN-Funktionen auch nach Eingabe eines eigenen Wertes erhalten bleiben:
Sub MerkeFormeln()
Dim Benutzt, z As Range
Set Benutzt = Range(Cells(1, 1), Cells.SpecialCells(xlCellTypeLastCell))
For Each z In Benutzt
If z.HasFormula Then
z.NoteText Text:=z.Formula
Else
z.NoteText Text:=""
End If
Next z
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim z As Range
Application.EnableEvents = False
For Each z In Target
If z.Value = "" Then
z.Value = z.NoteText
'z.Calculate
End If
If z.HasFormula Then
z.NoteText Text:=z.Formula
z.Font.ColorIndex = 3
Else
z.Font.ColorIndex = xlColorIndexAutomatic
End If
Next z
Application.EnableEvents = True
End Sub
Allerdings wird der Wenn-Funktionswert erst angezeigt, wenn man die Zelle händisch löscht. Wenn ich auf "eigene Werte" klicke, einen Wert eingebe und dann wieder auf "Standardwerte" klicke, bleibt der eingegebene Wert stehen. Eigentlich sollte aber jetzt wieder der Tabellenwert angezeigt werden. (durch drücken von Entf wird wieder der Tabellenwert angezeigt).
Hat jemand eine Idee wie man das lösen kann?
Vielen Dank schonmal und liebe Grüße,
Roman