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

Listenfeld in Arbeitsmappe

Listenfeld in Arbeitsmappe
19.10.2021 17:24:57
Udo
Hallo,
Wie in dem Beispielbild zu sehen ist, habe ich ein Tabellenblatt mit diversen Tabellen.
In den Tabellen werden Werte eingetragen.
Jetzt möchte ich, das ein Listenfeld analog der Funktion Dateiprüfung mit Liste aus der Spalte erstellt, alle Duplikate entfernt und dann angezeigt werden.
Theoretisch funktioniert es wenn ich als Quelle =$G:$G eingebe. Jedoch habe ich dann alle Felder und auch die Leerfelder in dem Listenfeld.
Userbild
Habt ihr da einen Tipp für mich?
Die Liste sollte sich immer selber aktuell halten ohne das z.B. eine Aktualisierung angetriggert wird.
Gruß
Udo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenfeld in Arbeitsmappe
19.10.2021 17:31:04
Hajo_Zi
Du bist im falschen Forum. Bildbearbeitung ist ein anderes.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten ändern. Schaue Datei
http://hajo-excel.de/gepackt/fremd/Datei_verschluesseln.zip
Falls Du den Download des Forums nicht benutzen möchtest, beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.
GrußformelHomepage
Anzeige
AW: Listenfeld in Arbeitsmappe
19.10.2021 18:01:09
Nepumuk
Hallo Udo,
das geht schon per Datenprüfung. Das Aktualisieren erfolgt über eine Event-Prozedur welche auf Änderungen in Spalte G reagiert.
Bleibt die Frage, in welchen Zellen soll sich das DropDown befinden? Und sollen alle Werte aus Spalte G berücksichtigt werden außer den Überschriften?
Gruß
Nepumuk
AW: Listenfeld in Arbeitsmappe
20.10.2021 08:55:06
Udo
Guten Morgen,
eigentlich wollte ich das sich die Dropdowns wieder in G befinden.
Es soll eine Auswahl der bereits eingegebene Daten ermöglicht werden da sich die Eingaben immer wieder wiederholen.
Gruß
Udo
AW: Listenfeld in Arbeitsmappe
20.10.2021 09:27:01
Nepumuk
Hallo Udo,
in Das Modul "DieseArbeitsmappe":

Option Explicit
Private Sub Workbook_Open()
Call Worksheets("Tabelle1").FillDictionary ' Tabellenname anpassen
End Sub
In das Modul der Tabelle:

Option Explicit
Private mobjDictionary As Object
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Range, objCell As Range
Dim objListObject As ListObject
Set objRange = Intersect(Target, Columns(7))
If Not objRange Is Nothing Then
For Each objCell In objRange
If Not IsEmpty(objCell.Value) Then
If Not mobjDictionary.Exists(objCell.Value) Then
Call FillDictionary
For Each objListObject In ListObjects
With objListObject.DataBodyRange.Columns(7).Validation
Call .Delete
Call .Add(Type:=xlValidateList, Formula1:=Join(mobjDictionary.Keys, ","))
.ShowError = False
End With
Next
End If
End If
Next
Set objRange = Nothing
End If
End Sub
Public Sub FillDictionary()
Set mobjDictionary = CreateObject(Class:="Scripting.Dictionary")
Dim objListObject As ListObject
Dim avntValues As Variant, vntItem As Variant
For Each objListObject In ListObjects
avntValues = objListObject.DataBodyRange.Columns(7).Value
For Each vntItem In avntValues
If Not IsEmpty(vntItem) Then mobjDictionary.Item(vntItem) = vbNullString
Next
Next
End Sub
Gruß
Nepumuk
Anzeige
Außer Konkurrenz: neue Funktionen
19.10.2021 18:26:29
RPP63
Moin!
In Excel 2021, Excel 365 und Excel Online kann man sowas bequem mit einfachen Formeln lösen:
 ABC
1w a
2e e
3  q
4s r
5t s
6  t
7q w
8t  
9   
10s  
11a  
12   
13   
14r  
15w  

ZelleFormel
C1=LET(l;SORTIEREN(EINDEUTIG(A:A));WENN(l=0;"";l))

ZelleGültigkeitstypOperatorWert1Wert2
A1Liste =C$1# 


Gruß Ralf
Anzeige
AW: Außer Konkurrenz: neue Funktionen
19.10.2021 18:42:06
Nepumuk
Hallo Ralf,
für was steht das l in der Formel? Und warum kommt bei mir noch eine leere Zelle dazu?
Userbild
Gruß
Nepumuk
AW: Außer Konkurrenz: neue Funktionen
19.10.2021 18:59:06
RPP63
Hallo Max!

für was steht das l in der Formel?
Ist eine Variable.
Ich nehme dafür immer Kleinbuchstaben, hier ein kleines L für Liste.
Ich hab die LET() bemüht, weil ich l zweimal brauche.
EINDEUTIG hat den Nachteil, Leerzellen als 0 zu interpretieren, deshalb WENN(l=0;"";l).
Ich hatte diesen Mangel auch schon mal mit Mourad (maninweb) diskutiert.
Aber, obwohl an MS gemeldet, wird das wohl nicht mehr geändert.

Und warum kommt bei mir noch eine leere Zelle dazu?
Die Leerzelle wäre (nur mit =SORTIEREN(EINDEUTIG(A1:A15))) eine 0, die noch hässlicher wäre.
 C
1a
2e
3q
4r
5s
6t
7w
80

ZelleFormel
C1=SORTIEREN(EINDEUTIG(A1:A15))

Gruß Ralf
Anzeige
AW: Außer Konkurrenz: neue Funktionen
19.10.2021 19:04:31
Nepumuk
Hallo Ralf,
DANKE für die Erläuterung.
Gruß
Nepumuk
Da ja ansonsten nur Texte in der Spalte stehen …
19.10.2021 19:05:26
RPP63
… kann man den Bereich ja auch "einfach" mittels INDEX und SEQUENZ verkleinern:

=LET(l;SORTIEREN(EINDEUTIG(A:A));INDEX(l;SEQUENZ(ANZAHL2(l)-1)))

AW: Da ja ansonsten nur Texte in der Spalte stehen …
19.10.2021 19:22:37
Nepumuk
Hallo Ralf
Klasse, so fällt auch die leere Zelle weg.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige