Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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

Excel-Dropdown-VBA

Excel-Dropdown-VBA
06.04.2017 12:53:21
Capone
Hallo an alle!
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

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Dropdown-VBA
06.04.2017 22:22:13
onur
Hi,
Das Klicken auf "Standardwerte" (Optionsfeld?) löst kein Worksheet_Change-Ereignis aus, also reagiert der Code nicht.
Wie startest du denn Sub MerkeFormeln()?
Wenn Du zwei Optionbuttons als Formularsteuerelment hast, nimm besser Active-X-Buttons, dann kannst du auf das OptionButton1_Change-Ereignis reagieren und z.B. Worksheet_Change-Ereignis auslösen:
z.B. so (verändert z.B. A1 - kannst du ändern)
Private Sub OptionButton1_Change()
Tabelle1.Cells(1, 1) = 1 - Tabelle1.Cells(1, 1)
End Sub

AW: Excel-Dropdown-VBA
07.04.2017 09:38:46
Capone
Danke für die schnelle Antwort!
Es sind keine Optionsbuttons, sondern eine Dropdown-Liste mit den 2 Möglichkeiten "eigene" und "Standardwerte". Das Sub Merke Formeln() wird nur einmal ausgeführt in VBA, um die Formeln in die Kommentarfelder zu überschreiben. (zur Speicherung)
Die Formeln sind die WENN-Funktionen, siehe Screenshot. Eventuell kann es auch ohne diese Formeln in Excel gelöst werden.
Hier die Screenshots:
(Das Rohr-Feld bitte ignorieren, die unteren drei Felder sind die Werte/Eingabe-Felder)
Userbild
Userbild
Anzeige
AW: Excel-Dropdown-VBA
07.04.2017 09:41:25
Capone
Sorry hier ist die WENN-Funktion für die Zelle mit den m²:
=WENN(C29="Standardwerte";G93; "")
AW: Excel-Dropdown-VBA
07.04.2017 17:38:03
onur
Hi AL,
Dann schreibe einfach den Code von mir in das ComboBox_Change()-Ereignis deiner Combobox. Die Combobox sollte ein Active-X-Element sein, damit man auf das Change-Ereignis reagieren kann.
Statt A1 kannst du irgendeine Zelle nehmen, die sich irgendwo im nicht sichtbaren Bereich deine Blattes befindet.
Wenn es Probleme gibt, einfach melden (am besten direkt auch die Datei posten).
Gruß
Onur
AW: Excel-Dropdown-VBA
10.04.2017 14:50:44
Capone
Hi Onur,
Ich bin leider nicht vom Fach und verstehe nicht genau was du meinst...
habe aber ein bisschen recherchiert. Eine Combobox habe ich nicht, nur einen Zellen-Dropdown.
Soll ich eine Active-X combobox einbauen?
Wie würde der Code in ihr aussehen und an welcher Stelle muss ich diesen einfügen in VBA?
Danke LG
(Der Code ist exakt wie oben im ersten Post. Die Datei kann ich leider nicht hochladen, wegen firmeninternen Infos.)
Anzeige
AW: Excel-Dropdown-VBA
10.04.2017 14:59:29
onur
Kanst du hinsetzen, wohin du willst. Code brauchst du nicht unbedingt dafür.
Dann Mausklick rechts - Eigenschaften - In "ListFillRange" eintragen, womit sie gefüllt werden soll (z.B.: A2:A4).
Dann Mausklick rechts - Code anzeigen und schon bist du bei ComboBox_Change, wo du den Code von mir einträgst.
AW: Excel-Dropdown-VBA
11.04.2017 11:06:35
Capone
Habe alles so gemacht, das ist der Code:
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 ComboBox1_Change()
Tabelle1.Cells(1, 1) = 1 - Tabelle1.Cells(1, 1)
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

Geändert hat sich leider nichts...
Eigentlich brauche ich ja nur einen Code, der wenn sich die Zelle mit der Dropdown-Liste auf "Standardwerte" ändert, den Inhalt der unteren Zellen löscht. Diese sind dann leer, und Worksheet_Change reagiert darauf automatisch,und füllt sie mit den
Standardwerten.
Es geht sicher auch alles mit dem Active-X-Element, nur fehlen mir dafür die VBA-Kenntnisse um alles umzusetzen.
LG
Anzeige
AW: Excel-Dropdown-VBA
11.04.2017 11:34:28
onur
Wir könnten viel Zeit und schreiberei sparen, wenn du die datei mal postest.
AW: Excel-Dropdown-VBA
12.04.2017 08:20:15
Capone
Vielen lieben Dank!
Nach einer kleinen Ergänzung der ComboBox funktioniert es jetzt endlich, so wie ich mir das vorgestellt habe. Mein VBA-Grundlagen Kurs ist jetzt auch schon vier Jahre her...
LG, Roman
-Closed-
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige