Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dropdown-Liste updaten
#1
Hallo allerseits, 

Ich beschäftige mich seit längerem mit einem Problem, welches scheinbar keine Lösung hat, oder ich sie zumindest nicht finde.
Ich will eine Inventarliste erstellen, und benutze dafür in mehreren Spalten ein Dropdown-Menü, welches ich mit einem Wert aus dem Namens-Manager fülle.
Im Namens-Manager habe ich mit diesem Namen eine Spalte von einer weiteren Tabelle definiert, in welcher die Werte für die Dropdown-Liste stehen.

Nun ist das Problem, dass ich die Einträge in der 2. Tabelle bearbeiten möchte, jedoch diese nicht in Tabelle 1 geupdatet werden, sprich ich muss erst den geupdateten Wert in der Dropdown-Liste auswählen, damit der im ausgewählten Feld eingetragene Wert überschrieben wird.

Vielleicht hat ja auch jemand einen Vorschlag wie ich das Problem anderweitig lösen kann.

Liebe Grüße,
Majusch Angel
Antworten Top
#2
Moin,

ein wenig verwirrend (zumindest für mich). Huh 

Lad doch bitte eine Beispieldatei (vom Aufbau her zwingend gleich wie dein Original - Daten können durchaus anonymisiert sein) hoch und trage händisch dein Wunschergebnis ein. https://www.clever-excel-forum.de/Thread...ng-stellen
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hi,

in dem Moment, wo Du aus Deinem Dropdown einen Wert auswählst, wird er als Konstante in die Zelle übernommen - ohne jeden Bezug irgendwohin. Somit kann auch kein "Update" erfolgen, wenn Du in der Quelle etwas änderst.
Aber wenn Du mal erzählst, was Du genau vorhast, kann man vielleicht andere Vorgehensweisen anbieten.
Antworten Top
#4
Im sorry, habe schnell ein Beispeil gebastelt und angehängt.
Danke schon mal  :28:

(27.09.2019, 13:59){Boris} schrieb: Hi,

in dem Moment, wo Du aus Deinem Dropdown einen Wert auswählst, wird er als Konstante in die Zelle übernommen - ohne jeden Bezug irgendwohin. Somit kann auch kein "Update" erfolgen, wenn Du in der Quelle etwas änderst.
Aber wenn Du mal erzählst, was Du genau vorhast, kann man vielleicht andere Vorgehensweisen anbieten.

Wie gesagt, ich will eine Inventarliste basteln.
Ich verwende z.B. die Spalten "Typ", "Etage", "Raum-Nr." & "Mitarbeiter".
Bei der Spalte "Mitarbeiter" z.B. wäre es mir wichtig, dass wenn uns ein Mitarbeiter verlässt und ich seinen Namen entferne oder ihn zu einem Platzhalter ändere, dieser Name auch in der Inventarliste geupdatet wird, und ich nicht jedes mal den Platzhalterwert in der Dropdownliste auswählen muss.

Sorry wenn ich mich so kompliziert ausdrücke, ich versuche grade selbst erstmal klar-Schiff in meinem Kopf zu bekommen  :52:


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 11,14 KB / Downloads: 4)
Antworten Top
#5
Moin,

über einen kleinen Umweg könntest du dein Problem so lösen:

In Tabelle 2 erstellst du eine Hilfsspalte, in der die gültigen Begriffe stehen und in Tabelle 1 eine Hilfsspalte, in der du per SVERWEIS() die gültigen Begriffe holst. Die Spale mit den Zellendropdowns könntest du, wenn es dich stört, mittels bedingter Formatierung "unsichtbar" machen.

Arbeitsblatt mit dem Namen 'Tabelle1'
BCD
4HSEssen
5Person ABrotBrot
6Person BFleischFleisch
7Person CFischGemüse
8Person DNudelnNudeln
9Person EFischGemüse

NameBezug
Essen=Tabelle2!$C$4:$C$7

ZelleFormel
D5=SVERWEIS(C5;Tabelle2!$C$4:$D$7;2;0)

ZelleGültigkeitstypOperatorWert1Wert2
C5Liste=Essen
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'Tabelle2'
CD
3ListeHS
4BrotBrot
5NudelnNudeln
6FleischFleisch
7FischGemüse
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#6
Hallo

per VBA möglich

- Rechtsclick auf den Tabellenblattreiter der Tabelle2
- Code anzeigen
- Code dort reinkopieren



Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error GoTo Fehler
   Const APPNAME = "Worksheet_Change"
   Dim RNG As Range, strVorher As String
   
   Set RNG = Sheets("Tabelle1").Columns(3)
   
   If Not Intersect(Range("Essen"), Target) Is Nothing Then
       With Application
           .EnableEvents = False
           .Undo 'Um den alten Wert zu ermitteln
           strVorher = Target
           .Undo
           .EnableEvents = True
       End With
       
       RNG.Replace What:=strVorher, Replacement:=Target, LookAt:=xlWhole, _
           SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
           ReplaceFormat:=False

   End If
   
   Err.Clear
Fehler:
   Application.EnableEvents = True
   If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
       & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear

End Sub



- Bei Änderung im "Essen Bereich" wird das Makro aktiv,
- ermittelt den Alten Stand,
- und tauscht die Essen auf Blatt1 aus.


LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • Majusch
Antworten Top
#7
(27.09.2019, 14:33)UweD schrieb: Hallo

per VBA möglich

- Rechtsclick auf den Tabellenblattreiter der Tabelle2
- Code anzeigen
- Code dort reinkopieren



Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   On Error GoTo Fehler
   Const APPNAME = "Worksheet_Change"
   Dim RNG As Range, strVorher As String
   
   Set RNG = Sheets("Tabelle1").Columns(3)
   
   If Not Intersect(Range("Essen"), Target) Is Nothing Then
       With Application
           .EnableEvents = False
           .Undo 'Um den alten Wert zu ermitteln
           strVorher = Target
           .Undo
           .EnableEvents = True
       End With
       
       RNG.Replace What:=strVorher, Replacement:=Target, LookAt:=xlWhole, _
           SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
           ReplaceFormat:=False

   End If
   
   Err.Clear
Fehler:
   Application.EnableEvents = True
   If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
       & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear

End Sub



- Bei Änderung im "Essen Bereich" wird das Makro aktiv,
- ermittelt den Alten Stand,
- und tauscht die Essen auf Blatt1 aus.


LG UweD

Hey,

Sorry für die späte Rückmeldung, das war die Lösung für mein Problem, vielen Dank  :23:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste