Supportnet / Forum / Tabellenkalkulation
Über Dropdown-Liste Einträge in anderen Zellen steuern
Frage
Hallo Leute!
Habe ein Dropdown-Listenfeld in Zelle B4 mit einigen Einträgen (Eigene...; IrgendwasA; IrgendwasB...) über die Gültigkeitsregel erstellt.
Möchte nun, dass bei Auswahl eines Listeneintrags (z.B. "IrgendwasA") automatisch eine bestimmte Zahl in Zelle B5 (z.B. "1000") und eine andere Zahl in Zelle C5 (Z.B. "800") geschrieben wird.
Nun könnte ich das natürlich über eine Wenn, Dann - Funktion in diesen beiden Zellen lösen.
ABER: Ich möchte bei Auswahl "Eigene..." in der Dropdownliste die Möglichkeit haben, dort eigene Zahlen von Hand einzutragen! Also dürfen die Zellen B5 und C5 keine Funktionen enthalten; da ich diese ja sonst überschreiben würde.
Nehme mal an, dass das nur über VBA zu lösen ist!
Hoffe, das war einigermaßen verständlich; bin halt kein Excel-Experte. Bin auf eure Tipps gespannt!
Grüße
Antwort 1 von weissvonnix
Hmm, scheint ja wirklich diffizil zu sein...
Hab mich selbst auch noch mal umgeschaut und Folgendes heraus gefunden:
Statt eines Listenfeldes könnte ich ein Kombinationsfeld erstellen. Dieses Kombinationsfeld würde die Einträge der ersten Spalte aus der folgenden Tabelle enthalten:
Eigene........; ; ;
IrgendwasA;100; 80
IrgendwasB;140;100
IrgendwasC;220;150
Wenn ich nun im Kombinationsfeld "IrgendwasA" auswähle, schaffe ich es mittlerweile, dass der zugeordnete Wert aus der zweiten Spalte (in dem Fall "100") automatisch in das Feld B5 geschrieben wird.
Aber wie kann ich gleichzeitig den zugeordneten Wert aus der dritten Spalte (in dem Fall "80") automatisch in Zelle C5 übertragen, ohne dass C5 dafür eine Formel enthält?
Denn ich möchte ja bei Anwahl von "Eigene..." die Möglichkeit haben, von Hand Zahlen in B5 und C5 zu schreiben...
Hab mich selbst auch noch mal umgeschaut und Folgendes heraus gefunden:
Statt eines Listenfeldes könnte ich ein Kombinationsfeld erstellen. Dieses Kombinationsfeld würde die Einträge der ersten Spalte aus der folgenden Tabelle enthalten:
Eigene........; ; ;
IrgendwasA;100; 80
IrgendwasB;140;100
IrgendwasC;220;150
Wenn ich nun im Kombinationsfeld "IrgendwasA" auswähle, schaffe ich es mittlerweile, dass der zugeordnete Wert aus der zweiten Spalte (in dem Fall "100") automatisch in das Feld B5 geschrieben wird.
Aber wie kann ich gleichzeitig den zugeordneten Wert aus der dritten Spalte (in dem Fall "80") automatisch in Zelle C5 übertragen, ohne dass C5 dafür eine Formel enthält?
Denn ich möchte ja bei Anwahl von "Eigene..." die Möglichkeit haben, von Hand Zahlen in B5 und C5 zu schreiben...
Antwort 2 von coros
Hi weissvonnix,
es wäre von Vorteil gewesen, wenn Du mal geschrieben hättest, ow Deine Daten stehen, also in welcher Spalte irgendwasA steht und in welcher Spalte die dazugehörigen Werte stehen, die kopiert werden sollen. Da man das nicht weiß, kommt hier nur ein Beispielcode. In meinem Beispiel stehen die Werte irgendwas A, irgendwasB usw. in Spalte E, die Werte 100 usw. stehen in Spalte F und die Werte 80 usw. stehen in Spalte G. Kopiere nachfolgenden Code in das VBA Projekt des Tabellenblattes, in dem sich das Kombinationsfeld befindet. Wichtig ist, dass es sich bei dem Kombinationsfeld um eins von der Symbolleiste Steuerelement-Toolbox handelt.
Bei dem Code wird der ausgewählte Wert mit den Werten aus Spalte E verglichen. Wenn eine Übereinstimmung gefunden wurde, wird der Wert aus der gleichen Zeile aber aus Spalte F in Zelle B5 kopiert und der Wert aus Spalte G in Zelle C5 kopiert. Da ich mal davon ausgehe, dass aber bei Dir die Daten in anderen Spalten stehen, muss der Code entsprechend abgeändert werden.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
es wäre von Vorteil gewesen, wenn Du mal geschrieben hättest, ow Deine Daten stehen, also in welcher Spalte irgendwasA steht und in welcher Spalte die dazugehörigen Werte stehen, die kopiert werden sollen. Da man das nicht weiß, kommt hier nur ein Beispielcode. In meinem Beispiel stehen die Werte irgendwas A, irgendwasB usw. in Spalte E, die Werte 100 usw. stehen in Spalte F und die Werte 80 usw. stehen in Spalte G. Kopiere nachfolgenden Code in das VBA Projekt des Tabellenblattes, in dem sich das Kombinationsfeld befindet. Wichtig ist, dass es sich bei dem Kombinationsfeld um eins von der Symbolleiste Steuerelement-Toolbox handelt.
Option Explicit
Private Sub ComboBox1_Change()
Dim Zeile As Long, Wiederholungen As Long, _
Suchbegriff As Range, Addresse As String
For Wiederholungen = 2 To Range("E65536").End(xlUp).Row
With Worksheets(1).Range("E1:E65536")
Set Suchbegriff = .Find(What:=ComboBox1, LookIn:=xlValues)
If Not Suchbegriff Is Nothing Then
Addresse = Suchbegriff.Address
Zeile = Suchbegriff.Row
Do
Range("B5") = Cells(Zeile, 6)
Range("C5") = Cells(Zeile, 7)
Set Suchbegriff = .FindNext(Suchbegriff)
Loop While Not Suchbegriff Is Nothing And Suchbegriff.Address <> Addresse
End If
End With
Next
End Sub
Bei dem Code wird der ausgewählte Wert mit den Werten aus Spalte E verglichen. Wenn eine Übereinstimmung gefunden wurde, wird der Wert aus der gleichen Zeile aber aus Spalte F in Zelle B5 kopiert und der Wert aus Spalte G in Zelle C5 kopiert. Da ich mal davon ausgehe, dass aber bei Dir die Daten in anderen Spalten stehen, muss der Code entsprechend abgeändert werden.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von weissvonnix
So, coros, hat trotz allem funktioniert *zwinker*
Musste mich jetzt aber richtig durchbeißen! Fing schon damit an, dass ich herausbekommen musste, wie man ein Steuerelement-Kombifeld denn eigentlich mit Daten füllt...
Habe dann, nachdem ich dein Script kopiert hatte, keine Anzeige in B5 und C5 gehabt, bis ich dahinter kam, dass die 6 und die 7 im Script die Spaltenzahl meinten, aus der die entsprechenden Werte geholt wurden...
Habe dann meine Hilfstabelle, aus der die Daten entnommen wurden, mal vom Ende des Tabellenblatts ganz an den Anfang gestellt in der Hoffnung, dass sich die Suche beschleunigen würde (hatte natürlich vorher deine spaßigen 65535 schon auf zweistellige Werte geändert, war mir aber immer noch zu langsam...). Bekam aber daraufhin wieder keine Anzeige in B5 und C5. Habe dann die Anzahl der Wiederholungen im Script auf 1 gestellt, und siehe da: Es funktionierte endlich! Und zwar richtig schnell!
Natürlich hätte das alles schneller gehen können, wenn ich dir schon hätte sagen können, in welchen Spalten/Zeilen die Hilfstabelle steht, allein: Sie stand zum Zeitpunkt des ersten Postings nur in meinem Kopf...
Und ich hätte weniger davon gehabt, ein Script zu kopieren, das ich nicht verstehe, als mich - wie jetzt - damit beschäftigen zu müssen...
So gesehen: Alles gut, danke!, und bis zum nächsten Excel-Problemchen!
Grüße
Musste mich jetzt aber richtig durchbeißen! Fing schon damit an, dass ich herausbekommen musste, wie man ein Steuerelement-Kombifeld denn eigentlich mit Daten füllt...
Habe dann, nachdem ich dein Script kopiert hatte, keine Anzeige in B5 und C5 gehabt, bis ich dahinter kam, dass die 6 und die 7 im Script die Spaltenzahl meinten, aus der die entsprechenden Werte geholt wurden...
Habe dann meine Hilfstabelle, aus der die Daten entnommen wurden, mal vom Ende des Tabellenblatts ganz an den Anfang gestellt in der Hoffnung, dass sich die Suche beschleunigen würde (hatte natürlich vorher deine spaßigen 65535 schon auf zweistellige Werte geändert, war mir aber immer noch zu langsam...). Bekam aber daraufhin wieder keine Anzeige in B5 und C5. Habe dann die Anzahl der Wiederholungen im Script auf 1 gestellt, und siehe da: Es funktionierte endlich! Und zwar richtig schnell!
Natürlich hätte das alles schneller gehen können, wenn ich dir schon hätte sagen können, in welchen Spalten/Zeilen die Hilfstabelle steht, allein: Sie stand zum Zeitpunkt des ersten Postings nur in meinem Kopf...
Und ich hätte weniger davon gehabt, ein Script zu kopieren, das ich nicht verstehe, als mich - wie jetzt - damit beschäftigen zu müssen...
So gesehen: Alles gut, danke!, und bis zum nächsten Excel-Problemchen!
Grüße

