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.

refresh von DropDown liste
#1
Hallo zusammen

In diesem Beispiel wurde in der Tabelle Daten etwas geändert:
Vorher: bla bla
Jetzt: bla blam

Hat jemand eine Idee, wie man die Tabelle Test automatisch bzgl. der Änderung in Daten updaten kann, ohne/mit VBA?
Scheinbar gibt es nicht so einfache Lösung

Danke


Angehängte Dateien
.xlsx   DropDownlist.xlsx (Größe: 9,84 KB / Downloads: 8)
Antworten Top
#2
zur info:

ich habe den Code auf MS gefunden, bekomme error 421


Code:
Sub Worksheet_Activate()

Test.Range("B3").Select
With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=Daten!$B$2:$B$6"
End With

Test.Range("B6").Value = Daten.Range("$B$5").Value


End Sub
Antworten Top
#3
Hallo,

ist ganz simpel: in Daten dynamische Tabelle anlegen. Die Tabelle einen Bereich zuweisen. Den Namen des Bereiches ins DD hinter dem = eintragen.
da braucht es kein VBA.
Dein Beispiel eingebaut im Anhang

Gruß Uwe


Angehängte Dateien
.xlsx   DropDownlist.xlsx (Größe: 10,89 KB / Downloads: 7)
Antworten Top
#4
Bin mir nicht sicher ob die Idee richtig verstanden wurde? 

versuche bitte in der Tabelle Daten da da da zu da da do ändern, wechsele dann zur Tabelle Main (ohne etwas zu machen) um zu sehen, ob deine Änderung stattgefunden hat.
Antworten Top
#5
ja bei mir ändert es sich im DD Menü. Ich vermute aber, dass sich die Werte in den Zellen, wo vorher da da da  drin stand, dann wohl da da do drin stehen soll? Wenn das der Fall ist, kann man mit einer Schleife With Tabelle1. im Modul der Tabelle2 und Methode .Find die Änderung aus ActiveCell auswerten, in Find übergeben und alle ein Frage kommenden Zellen der Tabelle1 mit der Schleife abklappern und den neuen Wert unter der Vergleich des alten (ehemaligen) Wertes dann ausgetauschen.

Gruß Uwe
Antworten Top
#6
danke
Je ich denke auch dass die Schleife hergeht und die Spalte in Test - um bei diesem Beispiel zu bleiben- je nach Veränderung aus der Tabelle Daten updatet.

Hier muss ich höllisch bei großen Datensätzen aufpassen; die Änderungen sind manchmal so minimal, dass kaum jemand merkt.
daher ein Sub Worksheet_Activate() wäre keine gute Idee für dieses Vorhaben.
Antworten Top
#7
Moin,

meinst Du sowas hier?:

https://www.tabellenexperte.de/dynamisch...en-teil-1/
[-] Folgende(r) 1 Nutzer sagt Danke an Imoelan für diesen Beitrag:
  • Tom2020
Antworten Top
#8
ich habe den Code in der Excel-Datei angepasst und man sieht was ich meine.

ok, schön wäre wenn man hier keine 1:1 Beziehung hat sondern durch eine Schleife automatisch die Werten in der Tabelle Test updatet.


Das Problem ist hier, wenn man eine Tabelle1 mit 100 Zeilen durch Drop-Down befüllt hat und später eine Änderung in der Liste (Tabelle2) kommt, braucht man eine Woche und ist es nicht sicher ob man alles manuell richtig ausgewählt hat, abgesehen davon, dass die Liste werte hat wie

CoTBa
CoTBaa
CoTBc
CoTBcx
usw.....


Angehängte Dateien
.xlsm   DropDownlist+.xlsm (Größe: 17,41 KB / Downloads: 5)
Antworten Top
#9
@TE  du hast recht, das ist merkwürdig.  da hilft nur die Zelle löschen.

Aber warum hälst du dich nicht an die Vorschläge mit dem Namensmanager und der Intelligenten Tabelle?

Die Listendaten zu eine Tabelle formatieren. Deren Name erscheint im Namensmanager.  Einen neuen Namen erstellen  mit dem Bezug  "=tabellenname"  
dieser neue Name kann als Referenz in der Gültigkeitsprüfung benutzt werden.  fertig.
Antworten Top
#10
Ich würde gerne jedem hier Recht einräumen, wenn er mit Excel in nicht Enterprise-Umgebung (große Datenmenge, unterschiedliche ERP-Modulen, Sprache, Länder, etc.) zu tun hat.

Fak ist jedoch dass man den Aufwand so gering halten sollte, wie ein/ausatmen. Natürlich sind andere Lösungen denkbar.
Diese minimal-Lösung (1:1 Bezeigung) ist nach einer langen Überlegung und Aufwand-Einschätzung (mit Dep) äußerst beherrschbar/ungefährlich, überlege für eine VBA-basierte Schleife-Lösung.

Wie oben, kommt selbst Sub Worksheet_Activate() bei einem Datensatz von 2000 nicht in Frage wegen der System Blockade (es gibt einen normal VBA-code wenn man Worksheet_Activate event nicht benutzen will).

Code:
Sub UpdateDropDown_manually()

On Error Resume Next
' //Your Line here




Sheets("Test").Activate ' Amend to suit
Sheets("Test").Range("D2").Select 'DropDown

With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Daten!$A$1:$A$4" ' Amend to suit
End With
Sheets("Test").Range("D3").Value = Sheets("Daten").Range("$A$1").Value




' //
If Err.Number > 0 Then
  Debug.Print Err.Number & ":" & Err.Description
End If
End Sub

thx
Antworten Top


Gehe zu:


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