Microsoft Excel

Herbers Excel/VBA-Archiv

Kombination Dropdown und Formel

Betrifft: Kombination Dropdown und Formel von: Dominic
Geschrieben am: 09.09.2020 16:32:50

Hallo zusammen,

ich stehe vor folgender Excel-Herausforderung:

Es wird für jeden Monat ein separates Tabellenblatt in einer Datei erstellt, also eins für Januar, eins für Februar etc.

Auf dem Januar-Blatt steht nun in Zelle A1 der Name "Müller". Der Sachbearbeiter wählt auf dem Januar-Blatt in Zelle B1 per Dropdown den Wert "Zahlungsverzug" aus. Über diese Dropdown Auswahl stehen prinzipiell noch mehrere mögliche Einträge zur Verfügung.

Auf dem Februar-Blatt steht nun in Zelle A1 auch wieder "Müller". Es soll nun in Zelle B1 der Wert aus B1 aus Januar angezeigt werden, also "Zahlungsverzug". Also quasi der Status des Vormonats. Per Formel natürlich leicht zu lösen.

Die Schwierigkeit ist jetzt die, dass der Sachbearbeiter nun die Möglichkeit haben soll, diesen Wert in B1 auf dem Februar Blatt zu überschreiben, aber halt auch per Dropdown Auswahl. D.h. die Zelle B1 auf dem Februar Blatt müsste eine SVERWEIS Formel und eine Dropdownmöglichkeit kombinieren.

Es wäre übrigens kein Problem, wenn die Zelle nach der Überschreibung per Dropdown die Formel "vergisst".

Hat hier jemand eine Idee?

Ich hatte auch schon überlegt, per Hilfsspalte den Januar Wert an den Anfang der Dropdownliste zu setzen (was auch funktioniert). Aber leider blendet Excel nicht den ersten Wert der Liste automatisch ein, sondern er müsste erst manuell ausgewählt werden...

Vielen Dank schon mal vorab.

Viele Grüße

Dominic

Betrifft: AW: (D)eine Beispieldatei wäre hilfreich(er) owT
von: neopa C
Geschrieben am: 09.09.2020 16:56:06

Gruß Werner
.. , - ...

Betrifft: AW: Probier mal das
von: Marc
Geschrieben am: 09.09.2020 18:25:25

Hallo Dominic,

lass mal in Zelle B1 dein Dropdown-Menü und füg wie in der angehängten Beispieldatei den Code _ der Arbeitsmappe in VBA ein und den Code der Arbeitsblätter in die vorhandenen. In ein neu kreiertes Arbeitsblatt musst du das Markro
Worksheet_SelectionChange
durch den Code in der Arbeitsmappe nicht nochmal einfügen, macht er automatisch.

https://www.herber.de/bbs/user/140156.xlsm

Wichtig
Geh in Excel auf Entwicklertools->Makrosicherheit und setzte den Haken bei Zugriff auf das VBA-Projektmodell vertrauen wenn du den Code aus der Arbeitsmappe nutzen willst.
Wenn du kein neues Arbeitsblatt mit dem Code erstellen musst kannst du diesen Schritt weglassen und den Code in der Arbeitsmappe auch.

Gruß Marc

Betrifft: AW: Probier mal das
von: Marc
Geschrieben am: 09.09.2020 18:29:34

Hatte einen Fehler,

du musst das Arbeitsblatt aber nun wechseln, um den Wert auf ein anderes zu übernehmen:

https://www.herber.de/bbs/user/140157.xlsm

Gruß Marc

Betrifft: AW: Kombination Dropdown und Formel
von: Dominic
Geschrieben am: 09.09.2020 21:02:09

Hallo,

hier noch einmal die Beispieldatei: https://www.herber.de/bbs/user/140159.xlsx

@ Marc: vielen Dank für deine Mühe und deinen Input. Ich würde wenn möglich auf VBA verzichten, nur wenn es wirklich nicht anders geht.

Kannst du netterweise den Code hier als Text posten? Ich würde ungern eine unbekannte *.xlsm Datei ausführen.

Vielen Dank!

Viele Grüße

Dominic

Betrifft: AW: Kombination Dropdown und Formel
von: Dominic
Geschrieben am: 09.09.2020 21:03:29

Huh, warum steht da jetzt ein Ausrufezeichen in der Thread-Übersicht? Ich hoffe ich habe nichts falsch gemacht :)

Betrifft: AW: Kombination Dropdown und Formel
von: Marc
Geschrieben am: 10.09.2020 07:16:39

Hallo Dominic,

hier der Code:

Dieser Code in "DieseArbeitsmappe":
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'Fügt das Makro in ein neu erstelltes Arbeitsblatt ein
Dim x As Integer
With Workbooks(ThisWorkbook.Name).VBProject.VBComponents(Sh.Name).CodeModule
    x = .CreateEventProc("Activate", "Worksheet")
    .InsertLines x + 1, "Dim ws As Worksheet"
    .InsertLines x + 2, "For Each ws In ThisWorkbook.Worksheets"
    .InsertLines x + 3, "If Range(""A1"").Value = ws.Range(""A1"").Value Then"
    .InsertLines x + 4, "Range(""B1"").Value = ws.Range(""B1"").Value"
    .InsertLines x + 5, "Else"
    .InsertLines x + 6, "End If"
    .InsertLines x + 7, "Next"
End With
End Sub
Dieser Code in jedes bestehende Tabellenblatt:
Private Sub Worksheet_Activate()
'wechselt beim Aktivieren des Arbeitsblattes den Wert der Zelle B1 in Bezug auf den Wert in A1
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If Range("A1").Value = ws.Range("A1").Value Then
Range("B1").Value = ws.Range("B1").Value
Else
End If
Next
End Sub
Hab gerade keine andere Idee wie es möglich ist.

Gruß Marc

Betrifft: AW: wenig aussagefähige Angaben ...
von: neopa C
Geschrieben am: 10.09.2020 08:52:25

Hallo Dominic,

... hier nur deshalb soviel dazu. Es ist möglich in einer Dropdownzelle mittels einer zusätzlichen Zellformel eine Wertevorbelegung dieser Zelle zu ermitteln. Jedoch wird mit der ersten Auswahl aus der Dropdownzelle nicht nur dieser Wert sondern natürlich auch die Zellformel überschrieben. Wenn Du also beides willst ist das nur mit einer VBA-Lösung möglich.

Gruß Werner
.. , - ...

Betrifft: AW: wenig aussagefähige Angaben ...
von: Dominic
Geschrieben am: 10.09.2020 13:34:20

Hallo Werner,

auch dir vielen Dank für deinen Kommentar. Du schriebst "Jedoch wird mit der ersten Auswahl aus der Dropdownzelle nicht nur dieser Wert sondern natürlich auch die Zellformel überschrieben.".

Das wäre vollkommen in Ordnung, dass bei der ersten Auswahl des Dropdowns der alte Wert und die Formel überschrieben werden. Wenn du mir vor dem Hintergrund weiter helfen könntest, wäre das fantastisch.

Danke dir.

Viele Grüße

Dominic

Betrifft: AW: wäre sicherlich möglich, doch ...
von: neopa C
Geschrieben am: 10.09.2020 14:17:52

Hallo Dominic,

... ich würde es schon konkret(er) darlegen. Dazu ist jedoch Deine bisher eingestellte Datei unzureichend.

Gruß Werner
.. , - ...

Betrifft: AW: wäre sicherlich möglich, doch ...
von: Dominic
Geschrieben am: 10.09.2020 15:36:53

Hallo Werner,

ich weiß ehrlich gesagt nicht, wie ich es anders darstellen soll. Das "Problem" liegt in der Zelle B1 auf dem Februar Reiter. Dort wird aktuell per Formel der Bezug zum Januar Blatt genommen, Suchkriterium ist der Name in der Zeile.

Diese Zelle B1 müsste jetzt aber noch gleichzeitig die Möglichkeit bieten, per Dropdown das Ergebnis der Formel zu überschreiben. Das bekomme ich halt nicht hin...

Danke dir.

Betrifft: AW: nun ...
von: neopa C
Geschrieben am: 10.09.2020 17:01:12

Hallo Dominic,

... ich hatte bisher immer nur in Februar!B2 Deine Formel und Deine Datengültigkeit "gesucht".
Deine Zellformel steht aber in Februar!B1. die hat aber bisher noch keine Datengültigkeitsdefinition. Wenn Du dort eine definierst, kannst Du das (und nur das) realisieren, was ich Dir geschrieben hatte.

Gruß Werner
.. , - ...

Betrifft: AW: wäre sicherlich möglich, doch ...
von: Dominic
Geschrieben am: 10.09.2020 20:05:17

[SOLVED]

Hallo Werner,

danke dir, du hast mir die Augen geöffnet. Das hatte ich gar nicht versucht, also einfach erst die Formel rein und dann im Anschluss die Datenprüfung einrichten. Dachte, dass das gar nicht geht, weil ja der Zellinhalt (=Formel) nicht den Werten aus der Datenprüfung entspricht.

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Auch noch mal danke an Marc.

VG Dominic

Betrifft: AW: geht mir aber auch manchmal so owT
von: neopa C
Geschrieben am: 11.09.2020 11:09:03

Gruß Werner
.. , - ...

Beiträge aus dem Excel-Forum zum Thema "Kombination Dropdown und Formel"